In any country, you should only get local currency through an ATM. My banks rebate ATM fees and the exchange rate is almost always Interbank rate or better.
you will get to within 3% or so of the published exchange rate which is pretty good.
If you're that far off, your bank is ripping you off. I'm not surprised Bank of America does this.