My opinion of the two is as follows:
MW3 is much more of an arcade game than BF3. Battlefield wins the realism award by a mile, IMO. However, not anyone can pick up a controller and enjoy playing Battlefield, as a previous poster alluded to, it takes time getting used to that a lot of people aren't willing to go through. MW3 is basically a wash and rinse repeat of the previous 3 COD games and has just gotten boring for me. With MW3, virtually anyone can pick up a controller and enjoy themselves without hating the game within 5 minutes. If you know what you are doing with FPS games, Battlefield 3 is the way to go. IMO, what is hurting BF3 from becoming the number 1 FPS is that so many people are still stuck on COD because that is what they are used to playing. Also, I've noticed that when people try switching from COD to BF, they don't like going through the learning process necessary to be good at BF, so they say screw it and go back to what they know.