My reasons in list form:
1) It's published by Activision, the greediest of the greedy.
2) Releasing the same product EACH YEAR causes the quality to diminish due to not having the proper time to create a product with innovation. While you said that other games are "reskinnings of the predecessor," they still add story development, increases in technology, additional weapons/items, and new features. When you release a new CoD each year, there isn't much time to properly implement new features, guns, story or technological advances, especially when Infinity Ward creates a game then leave it to Treyarch to just re-skin it.
3) Idiots keep buying it each year because they had fun with the previous one and want to keep playing it. When the game is new, that means a new surge of people playing online. For comparison, my friends play NBA Live all the time, but since they haven't released a new one in two years, there aren't many people playing online anymore. At this point, they recognize nearly every gamertag in the games they play. It is seriously to the point where they can say that they've played nearly everyone that is still playing the game and remember their tactics and behaviors from their previous games. On the other hand, I wouldn't be able to recognize anyone that we've played in Halo Reach because thousands still play it.
4) The developers know that people will buy the game regardless and that gives them little motivation to do anything new or maintain any sort of quality. They know that they don't have to work hard to create an amazing game because people will buy it anyway. It's like the criticism for Star Wars games. They may be pretty shitty in recent years, but people love Star Wars and that means they'll buy anything with Star Wars slapped on the label.
5) Because CoD is popular, that means that it draws in all kinds of people. You know how we hate Pop Cap Games or Zynga for the creation of "casual gamers?" People that aren't gamers in the slightest but call themselves gamers because they play Farmville or something? CoD does the same thing. In my high school, even the jocks and popular kids thought the game was cool and played the shit out of it. That drags the overall community down to barbaric levels.
6) Again, because CoD is popular that means that sales go to it instead of games that deserve it. CoD takes over the market share for online shooters. Between CoD, Gears of War, Halo, Battlefield, Killzone and Uncharted, there is hardly any room for new online shooters to make a foothold. Between that and their massive sales, many shooters end up being CoD clones in order to try to make some of that sweet money. It just dilutes the gaming industry.