Using an ATM to get foreign currency is still insanely better than using a currency exchange place like you see in international airports. Talking 1-2% fees versus 15-20% or higher.
The guy you're replying to, is saying the opposite.
Using an ATM usually gets you your banks exchanging rate, which depending on your bank, can be damn near free. (If the ATM tries to do the exchange for you, refuse, let your bank do it).
Same goes online. Paying with paypal, I never ever use their exchange service. Charging my card directly with the foreign currency is ALWAYS a better deal due to how good the exchange rate provided by my bank is.
Most banks will let you use your card in other currencies, directly, and just do the exchange on their end.
And it's usually really favorable too. If you've used your card abroad "like normal" for stuff like a restaurant meal, then you've used your banks currency exchange service.
It'll still add up if you make a ton of small purchases, and it would be good to check what your particular bank actually charges for exchanges.
But, lots of places will pretend to offer to do the exchange for you, at sky-high rates, when really you can just charge your card directly, and get a much better rate via your bank.
Once saved a friend like 50 bucks when she bought a leather jacket on the expensive side during a cruise. The shop offered to do the exchange for her, as if that was necessary. I saw the rate and immediately told her to refuse, knowing our bank charges almost nothing for foreign currency charges. She would have fallen for it.
it does yes, but currency exchange places near airports/train stations are notorious for pretty much stealing from you. Seriously, never buy a different currency near any place considered vaguely international, it can get as bad as getting half of what you'd get in a reasonable place, nowhere near as bad as withdrawing from an ATM in a foreign country
There are neobanks for people who travel a lot. Both Revolut and Wise should let you either convert ahead of time or just convert as you withdraw (Revolut has a notice saying please don't let the ATM do its own conversion as the ATMs are going to be higher fees). Currencies here. They apparently have a 2% withdrawal fee with a 1 EUR minimum. Revolut's fee-free maximum depends on your plan. Metal gets you a metal card and 800 EUR per month fee free, Ultra or whatever gets you a platinum plated card and 2000 EUR per month fee free, but it's also ridiculously expensive compared to their free, plus and premium plans. Metal itself is already a bit expensive, but it's still way less than Ultra.
In both cases, the fees are predictable and low, just gotta familiarize yourself with the beforehand. There are other similar options out there as well, but these are the ones I use (Wise is great for giving you both a USD and EUR native account so you can receive USD and convert it to EUR instantly. Other currencies as well, but these are the ones that matter for me). You can register for either one without visiting a branch or anything, but you will have to do some KYC checks for both of them and for Wise at least once you hit a certain amount transferred or a certain transfer size, you'll have to do an AML check. Not a lot of fun when you receive a large sum and you need a couple of grand out of your account the same day and get the AML check, but it doesn't take a long time as long as you can prove the source of your income is legit. For me I had some trouble with it because I had proof but not the exact types of documents their app allowed to use, but I called their customer support and it was resolved quickly. Since then, no issues.
I imagine most people already know that KYC = Know Your Customer. AML means Anti-Money Laundering. The former is only about your identity, the latter is meant to check whether your funds are legit, or you're receiving a bunch of money from terrorists or something.