A second reason is to avoid discrimination. Applicants that feel disadvantaged, even if they are actually qualified, may hesitate to negotiate for a higher salary in the same way that a other applicants would. The consequence is that they start with a lower salary. This applies specially to women. Plenty of research shows that they are less likely to negotiate their salary.
Research[1] suggests that pay transparency leads to lower average salaries because employers avoid paying higher wages to any one employee to avoid costly negotiations with others. The effect is small, around 2%, and it disappears with increasing degree of unionization. In my opinion this is an acceptable price to pay to reduce pay inequality, which often is much more than 2%. It is also a good argument for joining a union.