O caminho certo para processar find output não é for , mas para lê-lo linha a linha:
find . -type d -iname '*themes*' -print -prune |
while read -r path; do
find "$path" -name '*.ogg'
done
ou
find . -type d -iname '*themes*' -print -prune |
xargs -d '\n' -I {} find {} -name '*.ogg'
ou deixe find fazer isso:
find . -type d -iname '*themes*' -exec find {} -name '*.ogg' \; -prune
-prune é uma proteção simples contra casos em que um diretório pai e um subdiretório correspondam à regra -iname .
Eu pulei o tradicional -print0 | xargs -d '%code%' , pois nomes de arquivos com caracteres de nova linha são muito improváveis de existir em um sistema de arquivos FAT32.