¯\_(ツ)_/¯
There could be a number of reasons.
- After validating the previous block, mining pool operators can create an “empty” block template that only includes payment to themselves (i.e., no transactions, but a new state root), and quickly send this to workers (hashers) before starting to add transactions to their block (which, once done, will be sent to hashers). If a hasher gets lucky and finds a nonce satisfying the difficulty for this empty template, then the pool might as well propagate the block.
- A hasher might have a networking issue and doesn’t receive an update block template, and continues mining on the empty block template.
- Software bug(s).
- The mining pool operator is evil and irrational and refuses to add transactions to some of their blocks, but only some.
The list goes on.