Ваш цикл лучше записать как
find ... | while read -r file
Но тогда вам нужно убедиться, что вы указываете имя файла внутри цикла. Таким образом, мы получаем
find /path/to/directory -type f -name *.pdf | while read -r file
do
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dBATCH -dQUIET -sOutputFile="new_$file" "$file"
rm "$file"
mv "new_$file" "$file"
done
(также обратите внимание, что все эти ;
не нужны).
Теперь у этого цикла есть потенциальные проблемы с правами собственности / правами доступа к файлам, но это другой вопрос: -)