I think most commonly it’s just a game, they don’t want to be the first to say a number because that sets a minimum salary, otherwise they might get someone clueless who’d be willing to take the job for less.. Unfortunately that’s like 99% of the companies!
In any case: I'm huge fan of transparent job postings and believe that they are a net positive for both sides.