In many countries certain public sector companies are required to make documents public. The specifics vary dramatically location to location, but often these include budgetary items such as staff wages. (Needless to say, where it's legally required it's done)
Private Sector by requirement
Some private sector companies have legal requirements to disclose budgetary items such as staff wages. Typically though this is companies who's primary income comes from government grants and contracts. This also varies dramatically place to place.
Private Sector Optionally
Some private sector companies do make their wages public, however; this isn't very common. In regards to public and private wages honestly from working in multiple companies who's wages were public for legal reasons it really didn't affect your pay or turn over much.
People tend to think public wages means everyone will go "John gets paid more, I'm better than John, I should get paid more" fact is, if you go to your manager with that sort of argument for a raise you're going to be sorely disappointed. (Just as you would if wages weren't public but you over heard John mentioning his wage) The way for successful negotiating is demonstrating you're worth more to me than I'm paying you for.
That said there are managers who do well with public wages, and some who don't handle it tactfully.
Public wage concerns
The only really big concern with public wages is if a company isn't paying people fairly. Such as paying below minimum wage, or docking salary employees pay based on hours, or paying staff less based on gender, religion, or race.
So the reality isn't the wage being public is a problem in itself, rather if you have bigger fundamental problems they become public knowledge as well which can hurt your public image or even get your company in legal hot water.