Free market. Nobody is forcing anyone to take any of the offers. Anybody can open a trade with his preferred price and wait for someone to take it.
Haveno
It might work for USD or EUR to and from XMR but it wouldn't work for any other currency because the liquidity is so low, if the profit isn't there no-one will risk the trade to do the exchange. If you look for instance at CAD, there aren't any trade less that 5% either way. For the Indian Rupee, you can sell for a 10% spread but you can't even buy it. For other currencies, the spread and liquidity can be far worse so the choice will be to either the be no offers or accept the high spread offers.
There is also such a thing as arbitrage. People will go the better offer so if there is a large spread, there will be people who are willing to convert their currency to a foreign currency and buy or sell XMR in USD and pocket the difference. If it's profitable, someone will be willing to do it for less and eventually the profit will reach an equilibrium point that is fair. Since currency conversion usually has a fee higher than 3%, your 2.5% cutoff would eliminate this very fair liquidity (i.e. it's unfair to expect people to trade at a loss).
If you don't like the exchange rate, go to BasicSwapDEX and trade XMR for nimble wimble LTC. It's a bear to install and you will have to do some work to ensure you don't lose funds and you will have KYC issues with LTC to and from fiat, but it gives you a better rate. Or you can use a regular LTC/BCH to and from XMR trade on Haveno and worry about the KYC LTC separately if you want a better deal.
Price fixing leads to disruptions that are worse than the problem being "solved."
So it looks like we found the guy trying to suppress the price.
That's why I use services like Exolix to swap Monero. The fees are quite reasonable, and then, I can exchange my stablecoin for fiat elsewhere
There's already this feature: Settings > Preferences > Max. deviation from market price
The point is that the value would need to be default for everyone so makers needs to lower their fees. As has been said the fee/spread would have to be set the way so the users cover their cost (do not loose anything by trading) and also has some benefit out of the trade (like up to lets say 2% buffer).
I dont think forcing people gonna help. This is kind of censorship imho.