I wish people would read this entire thread before posting "just click on the iCloud gear, select preferences, and click Show Birthday's calendar". This is something I have done repeatedly on my own and with the Apple representative.
I used Mobile.me to sync my contacts and calendars on my iPhone 3GS to my iPad 2. I never used iTunes to sync my contacts/calendar. Birthdays, events, and contacts were working fine. When I received my iPhone 4S on 10/14, I went to the Apple store to activate it because I had read there were issues with migrating from Mobile.me to iCloud. I didn't want to risk losing my contacts since I wasn't backing it up through iTunes.
DAY 1 (10/14): Apple store migrated my Mobile.me account to iCloud. Duplicate calender events in the iPad (iPhone 4S was fine). No birthday's in my contacts or calendar on the iPad2 (again, iPhone 4S was fine).
DAY 4 (10/17): Spent over 2 hours with Apple phone support trying to resolve issue. Successfully removed duplicate calendar entries. Still birthday's appearing in iCloud or iPad2. Towards the end of the call, I WAS THE ONE who noticed the gear/preference birthday setting on iCloud. I checked the box, updated contacts, calendars, etc. Only some of the birthday's appeared on iCloud and iPad2. I've tried to manually add birthday's to the iPad2 contacts, only to discover they go to the calendar of the iPad2, but NOT iCloud. I finally had to end the conversation with Apple and go to work. We ended with the representative sending me an email with his direct contact information.
DAY 5 (10/18): Left voicemail and sent email for my "dedicated" Apple represenative. No response.
DAY 6 (10/19): Another voice mail and email. No response.
DAY 7 (10/20): Another email requesting status update. No response.
DAY 12 (10/25): Email expressing my disappointment that there has been no communication from my "dedicated" Apple representative or replacement.
So here I sit almost 2 weeks into my issue and it seems Apple could care less. Reading the other comments on this thread tells me I am not alone. I wish Apple would just acknowledge this issue and stop ignoring requests to fix it.