Почему?
Не считая рестартов сервера
Потому что cron это системный процесс, и вероятность того, что он сбойнёт в произвольный момент времени в разы меньше, чем вероятность того, что сбойнёт постоянно "висящий" в памяти кастомный .py процесс.
Опять же, в cron проще управлять запуском процесса: если запуск необходимо отменить, нужно просто закомментить строчку в расписании (а потом снова раскомментить), а не искать id вашего .py процесса и килять его, а потом опять запускать (ну... либо писать ещё одну оболочку, управления этим .py процессом).
Кроме того, cron оптимальнее с точки зрения потребляемых ресурсов (если это важно на вашем сервере).
Впрочем, это только моё мнение. 😊