Merkle root vs message digest?
Initially, they appear the same, only considering that there is a hash included in the block.

A Merkle Tree is more efficient to prove a transaction is included in a block since otherwise, it is necessary to have and hash each transaction to prove a transaction is included using a message digest, so a full node can do this, but an SPV client (and a pruned node looking outside the blocks it has kept) cannot.

There is some more information on how this works in these answers: Merkle Root and Merkle Proofs