Maybe if you have a bad bank, I’ve checked mine and it’s competitive. April 17 I did a Bandcamp transaction in GBP, charged my Chase card and got <1% difference in USD compared to the mid-market exchange rate on that date. It’s $90.21 on my statement, $89.92 when I calculate it, so +0.3% off the mid-market rate.
If you’re getting anything worse than this, you’ve got a shady bank, and there’s no lack of competition.