So if the range was 80-100K and you had a candidate at the lower end of the experience/skills range for the job, that candidate becomes attached to that 100K number. He tells his friends "I found a job that pays 100K". Candidates don't pay much attention to the low number in the real world.
So the interviews happen, the candidate performs as expected (not superb) and gets an offer for 80K. He thinks he's leaving 20K on the table if he accepts, or that he's getting lowballed. If the job had been posted 60-80K, he wouldn't have felt shorted at all.
This is a simplification of course, but posting salary led to lots of refused offers when the offer < the top figure.