Well, I just did a little more research on this, and it's really not clear. Carnival says they "highly recommend" traveling with a passport with at least 6 months validity, otherwise there may be a delay at debarkation. Possibly the same "delay" as experienced by those traveling without a passport.
From their web page:
"U.S. citizens may present a valid, unexpired U.S. passport when traveling via air, land or sea. Carnival highly recommends that all guests travel with a passport valid for at least six months beyond completion of travel."
They also say that no passport is required when cruising to Alaska, The Bahamas, Bermuda, Cozumel, New England and Canada, The Caribbean, Hawaii, and Baja, Mexico. Instead, an official birth certificate and gov't issued ID can be used at embarkation.
The issue with a soon-to-expire passport (and possibly a birth certificate/ID pair) might be in the case where you miss the ship either at the home port, or one of the ports of call, and need to fly to the next port. I suppose it would depend upon the airline and/or local authorities as to whether a short-dated passport would be accepted.
I'm guessing that cruising without a passport isn't a huge problem, since I see many, many people in the "No Passport" line at debarkation. These would primarily be US Citizens traveling with a naturalization certificate or birth certificate, or people with a non-US passport (e.g. Canada), or US permanent residents with a green card.
I would suggest using your current passport at check-in, but having your birth certificate and driver's license as a backup if requested. It would be interesting to know if your currently valid but soon to be expired passport will be accepted by Carnival staff at check-in.
Here are a couple of useful pages from Carnival's website:
https://www.carnival.com/help?topicid=3409
https://www.carnival.com/awaywego/cruising-fun/how-to-plan/places-to-cruise-without-a-passport