Você está quase lá! Isso funciona:
find . -mtime +30 -type f \( -name \*.xml -o -name \*.out \)
Seu / ( se torna \( (um parêntese de escape aberto; como você descobriu, o shell trata ( especialmente, por isso ele precisa ser escapado com \ ); da mesma forma, ) / deve, na verdade, ser \) . Os nomes precisam de * para corresponder a qualquer coisa que termine com a extensão fornecida, e isso também precisa ser escapado, portanto ".xml" (adicionei a cotação de fechamento ausente) se torna \*.xml ou "*.xml" .
Finalmente -print pode ser descartado, já que é a ação padrão de find .