Siempre haría un trabajo cron, porque:
- Ahí es donde los administradores de sistemas esperarán que esté (este punto no debe subestimarse)
- crontab es a prueba de balas, probado en el tiempo, extremadamente utilizado y entendido
- Puedes dirigir/analizar libremente los mensajes de error/éxito donde quieras
- Algunas tareas de la base de datos requieren/prefieren que mysql esté fuera de línea (por ejemplo, una copia de seguridad completa), por lo que debe usar cron para ellas; es una mala idea tener algunas tareas realizadas con cron y otras con mysql; no estarás seguro de dónde buscar
- Puede encadenar otros eventos que deberían seguir si tiene un script de shell
Y finalmente, solo porque puedes hacer algo, no significa que sea una buena idea. Mysql es bueno en cosas de datos. No lo use para cosas de "caparazón".