The real difference is the terminology: mercurial named branches mean something other than git branches (git branches are similar to mercurial bookmarks). Steve Losh's article explains that very well.
No, I know about bookmarks, but still, it's all about multiple heads. In mercurial branches, if you merge someone's work on the same bookmark as you did, you get new anonymous head. That head gets it's bookmark lost, since bookmark can only point to one changeset, that's why this bookmarks mechanism fits mercurial not too good.
While in mercurial native branching, you are allowed to get multiple heads in one branch, which from one point of view is frustrating, but from another is natural (since you really were both working on the same branch at the same time).
In Git they tried to solve this problem by origins system, but now, when I worked with both, I find mercurial branches to be the simplest concept that is easier to explain than git's origins.
The only big problem with mercurial branches is their speed, but I think that it can be solved (algorithms are not so complex to make it fast).