Why the nonce is difficult to find in Bitcoin?
Miners try many block candidates per second. Every candidate is different in some way, but the nonce is only one of the ways in which they differ. Other ways include the timestamp, and - most importantly - the selection of transactions. In particular, the first transaction in the block is the coinbase transaction, which includes the miner payout, and the extranonce.

In practice, miners at the lowest level just increase nonces, because that's the easiest way to modify a block. However, as you point out, any modern hardware will run through all 232 nonces in less than a millisecond. So to continue searching, they will modify the extranonce inside the coinbase transaction any time they run out of block header nonces. This requires more work, as it means the Merkle tree has to be recomputed.

At the time of writing (January 2018) only one block candidate in 829 quintillion is valid. This means that all network miners combined, every 10 minutes, go through over 1.9 trilllion sets of 232 nonces.