¿Por qué debería evitarse la evaluación en Bash y qué debo usar en su lugar?

Una y otra vez, veo las respuestas de Bash en Stack Overflow usandoeval y las respuestas son golpeadas, destinadas a un juego de palabras, por el uso de tal construcción "malvada". Por que eseval ¿tan malvado?

Sieval no se puede usar de forma segura, ¿qué debo usar en su lugar?