Because they are basically the same with a few different things. Run and gun again and stupid infinity Ward servers that have migrating issues. No dedicated for ranked again. Don't waste your money. Stick with BF3 much more to like with that one. Wish MW3 would have stuck with the Black ops server types.
I like MW3. The graphics are great and the gameplay is...well...Call of Duty. They haven't tried to fix what is not broken (or what WAS broken in a couple of cases).
They do NOT offer ranked dedicated servers like Mav said, however you also don't have to rank up to get all of your guns and perks - you can make your killer classes right away. I want all the guns more than I want rank, so that is good with me.
Modern Warfare has always focused more on the "hero" of the story and made mindless violence more personal than Battlefield.
Battlefield 3 is also super cool although I could only play the single player of it so far (and the beta multiplayer which completely sucked).
For pure "immersion" quality, it definitely out-ranks MW3. You are more aware of your body and its weight, and the complications of maneuvering in the theater. Thanks to DX11, I think, they captured a sense of space and depth very very well.
The graphics are really impressive and suck you in more - but they require much more computer to get the same clarity you get in MW3. On my computer MW3 plays like the trailer videos they released to promote the game, but Battlefield 3 is much less beautiful than the trailers. I get 32x AA with MW3 and only barely 4x AA with BF3.
I agree that BF3 is "better". I just wish it didn't take so much computer to run it correctly. I just bought an Nvidia 460GTX card last year, now I have to buy another.