That's because the two services do completely different things. In fact, you could almost consider one the opposite of the other:
- Mobile services provide services to mobile devices to call. While you could use them to post event streams, they aren't optimised for this. They don't store the stream, have no concept of consumers, etc. You would have to write everything that an Event Hub does by yourself.
- Event Hubs exist to accept a lot of data events from a large number of devices. It's designed to accept millions of events per second
Mobile Services just aren't made for event processing.
Event Hubs offer a lot of advantages:
- The stream is cached and queued, so you don't have to consume events right away
- You have a simple API to define consumers, without bothering about event storage etc. You just call receiver.Receive() to read the next event from the stream.
- You can have multiple consumers processing a stream.
- Consumers can stop and resume processing at specific points in a stream using checkpoints. This way, if a consumer crashes and restarts it won't lose events after the last checkpoint.
- Scaling is very easy if the traffic is high, you simply buy more throughput units
You'll find a much better explanation in the Event Hubs Overview article at MSDN.