The difference is: with a master public key, the sender can use it to figure out who else paid money to that address, past and future. With stealth addresses, the sender knows only the address they sent to (or maybe not even that... but you could work it out in any case by looking at which block it was confirmed into and how much the transaction was for)
How could the sender figure out who else paid money on that master public key if you created it only for him? The idea would be creating a different mpubkey for each individual.
Of course stealth addresses sound really cool and I hope it gets implemented. Right now the anonymity features of BTC are pretty poor and Gmaxwell seems to agree on this too.
I was comparing xpub keys and stealth keys when you make either type publicly available, there's a reason to do that for some use cases (e.g. accountability for a charity) and in others to use stealth keys (I don't like that term for them really, doesn't really explain what they do too well). It would be nice if the privacy was better by default, it seems we could get some of the way there on the proposed confidential chain.