IMHO, managers like to keep salaries private so that they can take advantage of people who are not great at negotiating. My suspicion is that they believe they come out ahead: the few hires who negotiate high pay are outweighed by the many who end up with lower pay. I'd also be surprised if many of them were concerned that minorities or women ending up with lower pay; it seems like a great opportunity to blame these hires for being, again, poor negotiaters.