My personal conjecture will add inferior cardio and lower coordination as evidenced by poor relative performance in ALL sports and sporting events. Indians do okay in badminton though.
It's malnutrition mostly. When you have almost 900 million people below the poverty line, their health indicators (which includes height) are going to be stunted on average. If you look at China's average height improving overtime, it matches the timeline over which China pulled its population out of poverty.
Poverty is the greatest affliction of humanity, unfortunately, it has never been India's priority to reduce poverty. I suspect their caste-mindset may have something to do this.
In terms of sport, even with over a billion population, India has never dominated any world sport. Contrast that with the much smaller population of Pakistan across the border, which has dominated two world sports (Squash & Field Hockey). Squash, in particular, is one of the hardest athletic sports one can play, and the Pakistani era of dominance lasted half a century. That's probably the longest domination streak of any country in any world sport. And as far as cricket goes, which is the most popular sport in Pakistan, the most physically demanding activity in cricket is fast bowling, which is one of the hardest things to do in any sport. And the fastest ball ever clocked in Cricket (100mph+) was bowled by a Pakistani bowler (a guy from my home town.) And all of this happened with very little support from the state infrastructure, and poor sporting facilities etc... I just wish football was more popular in Pakistan. I really want Pakistan to win the Fifa World Cup one day!!