It was trying to find "gs" via execve, so use execvpe instead. It's probably better to use gs's absolute path, but maybe not every cups-filters user needs it.