A candidate block is one of multiple blocks that have been prepared with the intention of being added as the newest block onto a blockchain. Not all candidate blocks make it through the process, which is why they are initially considered to be candidates.
For a public distributed ledger based on blockchain technology, the ledger itself consists of a continuously growing chain of chronologically ordered digital blocks (basically, the “links” in the chain), each of which is essentially a batch of transactions that was, at some point, added to the chain. At one end of the chain, the first block — the genesis block — contains the chain’s very first batch of transactions and has no preceding link. At the other end of the chain is the last (most recent) block containing the most recent batch of transactions to have been validated by the ledger’s consensus algorithm.
As time progresses, new blocks are added to the chain in order to facilitate the recording and ordering of new transactions onto the ledger. However, with the way most blockchain-based distributed ledgers work, the process for adding a new block is not as simple as batching up the most recently submitted transactions into a single block that then gets added to the end of the chain. Instead, prior to being batched-up into a new block, newly submitted transactions are first collected into an unordered transaction pool (aka mempool). From that pool, multiple candidate blocks are prepared by the different entities who are competing against each other to add the next block to the chain (and receive the associated reward). From one distributed ledger to the next, the specific “rules” of this competition may differ (often in very nuanced ways), or there may be no competition at all.