¿Por qué deberían evitarse exec () y eval ()?

He visto esto varias veces en múltiples lugares, pero nunca he encontrado una explicación satisfactoria de por qué este debería ser el caso.

Así que, con suerte, uno será presentado aquí. ¿Por qué deberíamos (al menos, en general) no usarexec() yeval()?

EDITAR: veo que la gente está asumiendo que esta pregunta pertenece a los servidores web, no es así. Puedo ver por qué se pasa una cadena no saneada aexec podría ser malo ¿Es malo en aplicaciones no web?