Você deve usar find
para isso.
Você pode testar com segurança com o seguinte comando:
find . \( -name frontend -prune \) -o -type f \( -name \*.o -o -name '*.cm[oixa]' -o -name \*.cmxa -o -name \*.annot \) -print
Quando estiver satisfeito com a lista de arquivos impressos, execute o comando real para excluir o lote deles:
find . \( -name frontend -prune \) -o -type f \( -name \*.o -o -name '*.cm[oixa]' -o -name \*.cmxa -o -name \*.annot \) -exec rm -f {} +