I would like to put forward another angle and this is the culture of India and the way the cricketers are treated and worshiped like no other country. The biggest problem with Indian cricketers is that they simple do not have the time to practice and properly develop as cricketers..as firstly they play too much cricket (i think the most ODI's anyway) plus many of the national cricketers have to play for there government teams like Air India, Indian Oil (which is nothing but a corporate event! Also if you look at the test team, odi team and 2020 team the nucleus of players is generally the same...For example if you look at Dhoni he looks physically and mentally jaded not just him many of the indian cricketers this is not only due to playing cricket but also the below reasons.
What I mean by culture is that Indian Cricketers (the top contracted players) have so many distractions apart from playing Cricket, such as shooting tons of commercials, attending TV SHows, Bollywood events...so when do they practice or thrive to improve? The answer is they are too mentally tired to do this and once all this is over (events, commercials shows) they just want to rest.
In which other country do you see cricketers on pretty much every TV Channel appearing in commercials or some TV show or another?
Until these cultural changes are made (do not think it is possible) Indian cricket will never sustain world dominannce like Australia in the 2000s and WI in the 70s, 80s..they will always produce ridiculously talented cricketers but until these things are changed things will not improve.
Of course pitches do not help..but Pakistan pitches are very flat too and I can't see them having the most controlled diets..