"Market" means "below market"
Thus "competitive" means "below market" :-)
Here are some reason's not to list salary:
(a) You're afraid of scaring off good people before they even hear your pitch.
(b) You aren't paying the rest of your team at true market and if they saw the ad they might ask for raises or get pissed and leave.
(c) You don't want to attract people who are in it for the money. (But it's OK for the company owners to be revenue driven of course.)
(d) You want to hire an "A" player who is more expensive than the "B" players you have and you don't want to explain it to your "B" players.
As they grow, companies tend to optimize for mediocrity - "We can't pay $X for someone really valuable because it would upset the (good but) less valuable team members."