Email report via cron gets moved every time it runs!
If you want the jobs to execute at exactly the same time every day, swich it to disabled in the UI and then call that job with its params from a system crontab instead. We do this often for recurring contribution jobs e.g.
Here's an example from one of our clients who in addition to executing the usual CiviCRM scheduled jobs mails out a report at a very specific time -&gt; params are: instanceId=44 and format=pdf (just like in the CiviCRM UI). Note that the /usr/local/bin/vcv-production-all (it's our way to call civicrm's cv) and secureexampleca is this site example and is specific to our docker set up - but crontab is not - it's a UNIX command.
5 * * * * /usr/local/bin/vcv-production-all api job.execute auth=0
1 09 * * * /usr/local/bin/vcv secureexampleca api job.mail_report instanceId=44 format=pdf