When I took my Schwab debit card to Europe, the exchange rates that I got were identical to the ones posted on Visa's website, suggesting that it's Visa doing the ForEx conversions.
A lot of banks do charge a percentage fee on top of Visa/MC's exchange rate, but my bank does not.
Schwab and Fidelity debit cards are the only ones that do this AFAIK. In addition, you get unlimited ATM fee rebates, even outside the US. I’ve stopped taking cash home and instead withdraw from my Schwab account :)
A lot of banks do charge a percentage fee on top of Visa/MC's exchange rate, but my bank does not.