1) A candidate's expectation for salary might be lower than the advertised range, but if they see the range, they'll expect more money.
2) The company might be able to convince a good candidate to accept a salary below their expectations if they can sell the company and culture. These candidates won't apply if they see a range below their expectations.
3) It makes the company's salary ranges public, which little startups will use to create comparison websites, driving even more candidates away from smaller companies to the tech giants and monopolies who can afford to pay above market in order to kill their competition.
Overall, I'ld say it would be convenient at first, but a horrible idea in the long run if it's made mandatory. It should be up to individual businesses.