Blockchain is a chain of blocks. Every node connected to blockchain have to come to consensus about the state of that blockchain.
If you and I have a different view of blockchain then some transactions that are valid for you might become invalid for me and it just doesn't work. To make this thing work every node in a decentralized network should have the same view of the history of transactions, also known as blockchain.
Now if we allow every node to add a block to blockchain, due to network latency every node will have different view of the blockchain. Thus, we need a way to somehow select nodes that can add a block to blockchain for a particular round. For this, every node has to solve a cryptographic puzzle. Nodes who solve this puzzle can add a block containing proof of the solution to the blockchain.
As you can see, nodes have to put in some effort to solve the puzzle and thus we have to give them some reward. In bitcoin, newly generated bitcoins and transaction fees are given as a reward.
And this process of
1) Competing with every node for solving a puzzle
2) Add a block to blockchain if you found solution before everyone else
is known as discovering a block.