I was on a school trip to Sosua and this kid tried to get a credit card cash advance from a CD vendor at the airport. I did everything I could aside from physically dragging him away to stop him but he insisted. He got burned for over $300 and spent most of his trip on the phone trying to get the transaction reversed.
There are ATMs 10 minutes away in Sosua. There is no reason to bring more than a couple bucks with you in cash for entry fees, and they take Canadian money.
Change at the cambio shops for the best rates. Your hotel will also rip you off and the bank takes too much time. I like to change even amounts so I can be sure the exchange rate is what is actually posted.
ATMs are good, but you will pay card fees.