12.5 BTC now is much better than 0 BTC later because someone else solved that block during the few seconds (or few milliseconds) that you were busy building a block full of transactions.
Note that a pool typically has MANY participants. They need to get hundreds, or thousands, or hundreds of thousands of block headers out to all their participants as fast as possible so those participants aren't sitting idle waiting for the pool to build a block for them.
When a solved block is received, the pool needs to verify that the block and all the transactions in it are valid, then they need to remove all those confirmed transactions from their mempool. Then they can build a new block (or set of blocks) from the remaining transactions in the mempool. It can be faster to instantly send out an empty block to all participants, then while those participants are being kept busy build the full blocks for them to work on next. Many of those participants will complete their work within a second or two and may receive a full block to work on next. However, some of those participants may not have as much hash power. They may take 10 seconds or more before they finish working on their empty block and request a new block (so the pool can give them a full block). During that time, one of those participants could get lucky and actually solve the empty block they were given.
If you are a pool operator, and one of these slower participants solves a block with 12.5 BTC, are you going to just throw that block away and hope that some other participant will solve a block with transactions before any other pool does? Or are you going to immediately collect your 12.5 BTC and start the process over to try and get an ADDITIONAL 12.5BTC+fees?