The main functional difference is Service Bus provides out of the box support for message exchange semantics such as topic based routing via publish-subscribe.
MSMQ on the other hand is a lightweight store-and-forward queuing system, which supports point-to-point one way messaging.
Service Bus:
- depends on SQL Server, and
- is a broker. This may be considered a drawback.
If you are looking at pub-sub frameworks then a popular one at the moment (free in single threaded mode) is NServiceBus, which sits on top of MSMQ, though has swap-able transport.