Cron may have been working, but it had numerous deficiencies that could not be fixed. For example, there's no mechanism for preventing long-running jobs from piling up, you're on your own for logging and figuring out handling for failed jobs, and there's a litany of papercuts from differences in implementation across distros. Systemd timers solve all of those issues, while also granting access to all the other service-inherited benefits like cgroup isolation and resource control. In terms of features, reliability, and simplicity, cron is a poor substitute, and systemd timers really has no rival.