Instead of items, Heroes has players start off at level 1 with an arsenal of abilities, and every few levels unlock a choice of talents they can use to customize their abilities or their heroes to different purposes. These talents effectively replace items, allowing for customization but without added headache. Is it as complex as the item system? No. But it still allows for more variety than some would have you believe, because the best way to play the game is to modify your talent choices in response to the game at hand rather than using a predetermined build.
As far as criticisms go, each game mode in Heroes has its own issues. You can play versus an AI team, in which case you are effectively assured a victory unless two people on your team are AFK or actively working to sabotage your efforts. You can play Quick Match, in which your random team composition may be lacking some vital team roles, such as healing or damage, leaving you at a significant disadvantage. Or you can play Hero League, which lets teams draft their heroes. The way teams are drafted, however, poses a problem: players alternate picks between the two teams, and if one team selects a hero, the other team cannot pick that hero. But depending on the map being played or the team composition starting to be formed, some hero picks are obviously superior to others. This results in scenarios in which, in order to play optimally, players are forced to pick certain heroes either to gain an advantage or deprive the enemy of an advantage. Even if you hate playing as a certain hero and it is your weakest hero, you cannot afford to let the enemy select the hero, so you have to scoop it up right away. The ability to swap heroes with your teammates before the game starts would largely resolve this.
This ties into a subsequent point: heroes aren't currently balanced. Or rather... most heroes are fairly well balanced, but there are a couple outliers that are underperforming and overperforming. The win rates for most heroes are actually in a very comfortable place, but balancing those outliers should have been done before release, rather than pushing out even more heroes. "We can always balance after release" is a mentality that needs to go away. "Good enough for now" is another way of saying, "I know we could be better." In fairness, this criticism is a little harsh; it is actually impressive that Blizzard managed to balance the vast majority of their heroes fairly well, given the immense variety. But that makes it that much more irksome that the final bit of effort wasn't put to bring the couple outliers in line before release.
The game currently has 36 heroes, each fitting into one of the game's four distinct roles, such as healer, tank, or damage-dealer. These heroes are pulled from Blizzard's various franchises, and there's a great variety to select from, both thematically and in practice. Some hero ideas are so original and unconventional that it's hard to imagine how they could possibly be balanced, and yet... they work. Take Abathur, for instance, who sits in his base and deploys troops and buffs throughout the battlefield as though he were playing a strategy game, or The Lost Vikings, who actually consist of three separate characters that can either move together as one or split up all over the map.