What is the benefit of using a Merkle Root rather than simply hashing all of the transactions in the block?
The Merkle tree allows verifying that a transaction exists in the block without having the entire block, by following its Merkle branch. Among other things this enables:


SPV (lightweight) clients
Blockchain pruning
Smart pool miners