I guess it's because the display-name doesn't matter that much in Starcraft 2. Even if you were about to meet a player with the same name in an online-match it wouldn't be an issue, since there are several other "layers" that help you distinguish players in game. One is the color of the units on screen, another one is the team the player belongs to (in 2v2 or other team matches).
Impersonation is probably also a non-issue. This is most likely going to happen where there's a bad player that wants to use the name of a very good player. Nobody is going to believe that FruitDealer located in the bronze-league is actually the real FruitDealer. As soon as you're playing in the top levels, you're most likely opting for a unique name.
Since the ladder is segmented into leagues and the leagues are segmented into divisions, name-clashes are also very unlikely. Maybe Blizzard even makes sure that there aren't players with the same display-name in the same division.
I think the non-unique display-name can work in every game where the name isn't an important part of the virtual identity. In the case of Starcraft 2 you have an character-code (ID) or your battle.net account e-mail that can be used to find friends. The display-name is just what is shown on screen and can even be changed (a limited amount of times).
You might have noticed, that the same is also true for the gamedev.SE site. You can have several users with the same name here.
As soon as you have several properties that can help distinguish players and the display-name isn't used as ID, non-unique display-names can work fine. It also has the big advantage that players don't have to search hours for a display-name, because all the "good" ones are already taken.