Overall I prefer Halo (before it got laggy and I cried a little and now play BF3)
I like halo more for 2 reasons:
1. Its not easy to insta-spam-trigger-noob death. basically in COD and BF anyone holding down a trigger can kill you by accident with no skill needed just by spamming a rapid fire weapon in the general direction of the enemy spawn. Yes its more realistic to die from 1 bullet but noobs spamming heavies getting kills from random luck pisses me off...
2. There still are some but there are fewer try-hards. When I play COD and BF I get loads of messages about clans and how certain weapons are for noobs and how I can't play a certain way or how THEIR server bans half the weapons in the game etc. In halo I do occasionally get clan invites but I don't get told off for killing someone with, and I quote 'The wrong shotgun cos only noobs use it.' or get a 2 minute ranting voicemail message telling me I'm noob for knifing someone. (I usually reply: yup so noob I knifed you and got a better KD).
I should say I don't have anything really against COD or BF esp since I am playing BF a lot atm due to halo getting more laggy but I just find halo more fun/less serious and I guess I like that only power weapons can 1 hit kill, like a sniper headshot (Takes 2 body shots) since if you get pot shotted from across the map, if you are good enough you can sometimes get away or get a kill by turning the tables on them.