Cron runs commands with a very limited environment - PATH, for instance, may be missing things that it would have in your normal login shell. It’s typically a good idea to put an explicit path to any executable needed - so /some/path/to/backup instead of just backup.
Digging around in the code for ‘backup’ also shows that you may want to pass --root-path=/wherever/your/app/lives to the script as well, to ensure that it can find the config files, etc that it needs.
–Matt Jones