I'm no M$ engineer but this is what I believe:
preview renders all page breaks, page/section numbering, formatting, and as you noted, events that otherwise would not run
normal sends it direct to the printer thus records have to be retrieved and divided into page/sections/groups on the fly
I never experienced this when the typical memory was much less and the processor speeds much slower than what's common today, but keeping the reports simple as possible might also have been a factor. I would have thought that with network and processor speeds being what they are today, the issue ought to be more common due to Access not being able to keep up. The problem seems to suggest that a print job is being spooled before the report has retrieved records for a particular section/page, and given the number of variables involved, who knows which one alone, or which in combination, are the problem?
If you are correct in that this report isn't as "complicated" as others that don't present the problem, then perhaps you could solve this with a short pause in its Open event. In case you need to do this in some other event, the best explanation of the order of events I've seen as of yet is here
https://www.wisdomjobs.com/e-univers...nces-8369.html
By pause, I mean a UDF that for example, adds a period of time to the Timer function and loops until that time is reached. You probably would only need 1 or 2 seconds.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.