Generally, if you'd like to know why a miner mined an empty block, you would have to ask them. They could do so for any reason, really.
For a more specific example of a technical example of why a miner may mine an empty block:
As a miner, you'll want to include transactions that pay fees in your blocks, in order to maximize your profits when a valid block is found.
But also, you need to ensure you are always working on valid blocks, because any time spent mining on what may be an invalid block is likely just a waste of your resources.
With this in mind, consider what happens when you hear about a new block on the network. You can validate the header of the block quite quickly, and begin mining on it, in order to not waste resources mining at the height of (chaintip - 1). The catch is that downloading and validating every transaction in the block takes a tiny bit of time, and until that validation is finished, you will not have a clear picture of which transactions are included, and not. So until you have finished validating the new block, the safest play is to begin mining an empty block on the new chaintip. Otherwise if you include an already-confirmed transaction, your block will be invalid! Once your node has a clear picture of which transactions were included in the new block, you can resume mining on a full block, in order to maximize profits.
In reality, the time between hearing about a new block, and updating your mempool accordingly is quite small, but nonetheless on occasion a block is found during this time.
I do not know if that is what happened with this block, but it serves as an example of a technical reason why an empty block may be published to the network.