1-Main factor were injuries. He had his career virtually over (at least as a top player) soon after he turned 25. That's very young. Federer reached his peak the year he turned 23 and Djokovic the year he turned 24, that's when they really started winning, just to name a couple of players. He could have won much more if not for the knee injury in the spring of 2005. Also, he lost pretty much the whole 2003 and had some minor injuries in 2001 as well.
2-Mentality wasn't the best as well, he could be very mentally strong when he was confident, but also he could be mentally weak. In 2002 he was playing great after a poor 2001 but was losing all the big matches because of the pressure of winning. Dire performances against T. Johansson in the AO final and Ferrero in the RG semi. 2 slams he could have won for sure.
3-Inconsistency. He was more consistent than given credit for when he was healthy, he won 7 titles and made 2 finals in 2000, and he sucked before April. So it was virtually a title a month. Also in that run from September 2004-January 2005, he was consistently playing his best almost every match. But compared to the likes of the Big 3 he wasn't the most consistent. He was prone to losing to vastly inferior players.
His dedication wasn't bad, at least according to what people like Lundgren say. Sure he wasn't Ferrer or the BIG 4 in that regard, but he would have been a Gulbis or Fognini type if he didn't care at all.