Bash é um shell Unix que inclui uma linguagem de script. É bastante processador de comando. você controla a maneira como executa comandos, na verdade os executa.
Perl / Ruby / Python são linguagens de uso geral.
Quando você deseja um script de shell, usa o Bash
Se você deseja uma tarefa mais complexa ou não relacionada ao shell. Use Python etc.
Eu nunca compararia esses idiomas, na verdade. Python etc. são portáteis. Você pode executá-los em qualquer lugar. O Bash é apenas para Unix.
O Python etc. tem toneladas de bibliotecas reutilizáveis, resolvendo milhões de tarefas.
É quase o mesmo se você perguntar. "Quando usar o Paint e quando usar o Photoshop"
Para processar e-mails, eu usaria o Ruby novamente, porque ele possui muitas bibliotecas reutilizáveis.
Mas a melhor maneira seria combinar bash e ruby. Isso seria correto. Como se você criasse um script de processamento de email em ruby, o script bash invocaria esse script ruby e executaria outros ds commans.
Portanto, sempre que você precisar de um processador de comando, use o bash. Você executa comandos unix e os controla.
ATUALIZAÇÃO após 7 anos (mar 2019)
Embora a parte principal da minha resposta não tenha mudado, gostaria de salientar isso.
O Bash também é uma linguagem de script poderosa. Para o processamento de texto, pode ser uma escolha legítima absoluta.
Por favor, leia os comentários de mkaito abaixo. Todos eles são completamente verdadeiros.