I have the unique perspective of having been both a student (KGP-B Tech 1998) and a faculty (IITB from 2010 to 11) in the IIT system. The answers above give many important things to dislike regarding IITs.
As far as I can see it, the MAIN problem is that the system does not give any motivation or incentive for students or faculty to really excel in science or engineering. For example, an unsuspecting student is corralled into the department of mining or the department of textile engineering just based on the AIR and the need of the institute to fill up the seats so that Profs can justify their existence. Some poor girl has been studying Physics Chemistry and Maths for 2 years (even more) to get into IIT and had no idea that she was destined to be a textile engineer or metallurgist or whatever!
First, the JEE and AIR system already is a disincentive for any student who wants to think for himself and wants to decide what he wants to learn. But worse, once the students get in, the classes are mostly compulsory and many of them are super boring. This is because there is very little incentive for faculty to excel in teaching. AND there is no incentive for them to do any good research. With a few honourable exceptions, most research output at IITs is very mediocre. The Master's and Ph D programs (the pride of any self-respecting research university) are jokes.
Still, IITs will not only survive, but will expand and flourish. The reason is, their main goal is not to produce scientists and engineers, but to propel middle class kids to desirable goals -- software, management and finance jobs, grad school in the US, business school etc. Employers like the fact that these students know how to obey irrational orders without questioning (a skill they have mastered in 4 years on campus.)
What is amazing is that even after this a small fraction of students still care for learning!
What a terrible waste of talent and effort.