The programming is just too difficult, or not worth the effort. In many traditional scripting languages, powerful and general to be sure but also perhaps too low-level, doing the most common thing is often needlessly difficult or obscure. With the prospect of writing, debugging, and maintaining code so daunting, many programs are deemed just not worth doing. The process is time-consuming and repetitive. Visiting machines one by one is unavoidable if you need to adjust cron timings or add, delete, or modify commands in crontab.
Errors go unnoticed, spew forth, or get routed to the wrong people.
Typically a script will break, no error messages are generated, and this break will go unnoticed for days or weeks. In other circumstances, breaks result in a deluge of error messages in the form of root e-mail. At other times, error messages get routed to the wrong person, who may be on vacation, too busy to react, etc. The layout is insecure. There are just too many different things to look after and in too many different places.