Your agent will be more than happy to answer all of your questions about cash.
Basically, you don't need cash onboard a ship except for two things; gambling and extra gratuities. (And you can even get cash from your onboard account for gambling.) You can also cash a check (usually up to only $100 - $200) and they usually have an ATM onboard, but the fees are usually high.
Normally, alot of people have their gratuities applied against their onboard account and pay for it with credit card - makes life simpler and easier. You can pay those gratuities with cash on most cruise lines if you wish. The only time we use cash is when we order room service since that person is not on the normal gratuity list.
As was already said, in ports you'll need some cash to buy food, drinks, trinkets, etc. Any port in the Caribbean, Mexico, Canada, etc. will accept U.S. dollars. Even in alot of major European ports they'll accept U.S. dollars in alot of places, but it's better to carry local currency over there.
One note; if planning to use your ATM card in foreign ports, unlike in the U.S. where you can withdraw cash from your savings or checking accounts, their machines will only allow you to withdraw cash from your checking account. So if you have your extra spending money in your savings account, make sure you transfer it to your checking account before leaving. But there are plenty of ATM's, so we only keep enough cash for spending and get extra cash when needed. We use our credit cards for major purchases.