So a full node verifies all transactions and blocks, and a miner is rewarded for the additional task of building a new block.
Yes, with slight corrections in italic.
The transaction fee is related to a transaction, so why doesn't the first node to verify it get the fee?
Because the fee is by design for the miner. The verification does nothing "for" the transaction other than allowing it to be forwarded to other nodes.
Is it because they can't register their verification without building a new block?
A verification is not the same as a confirmation. A verification is just "yep, thats fine accoring to the network rules, I will tell my peers about it". A confirmation is "this transaction is now very unlikely to be ever reversed". Verifications are easy, confirmations are hard and expensive, because they require finding a block. They require "proof of work".
Would it not be fairer to reward the first node for verifying the transaction, and reward the miner for building the block?
Maybe it would be a good idea to reward full nodes, but keep in mind that finding a block is the important part. Its currently rewarded by 25 BTC on top of the fees, but this reward halfes every 4 years. So over time, the fees have to be the reward to find blocks at all. If there is no reward, less people would try and it would become easier. This would make bitcoin easier to attack.
Of course the miner would get any transaction fees if he was the first to verify them in his block, and there must be a high probability that miners will be the first on many transaction. This approach would reduce the rewards for SPV miners.
SPV Miners still get the 25 BTC block finding reward, even if they dont verify anything. Well the reward is taken back if it turns out that they build on top of an invalid block, but thats the risk they are willing to take.