Bias! We lost 2016 T20 World Cup in India too. So don't say things like that. We learnt our lesson from our defeat at World Test Championship.
Why are you comparing Test format with ODI format? It's different game altogether.
We lost in 2003 due to not picking Laxman and Agarkar. Sachin, Viru, Ganguly, Dravid, Yuvraj were in prime form as a batter. Laxman and Agarkar would have made huge difference in my opinion.
We didn't give chance to Gambhir in 2007 and our bowling wasn't good enough. Everyone was new. So it's important we get new fast bowlers for four years between two world cups and manage their workload across format.
2011 was complete team effort. Dhoni in Final, Raina in Quarters, Sachin in Semis, Zaheer Khan overall, Yuvraj role as a bowler in whole WC made things easy.
2015 wasn't good because of two reasons, we lacked good sixth bowler. Manoj Tiwari instead of Rahane and Suresh Raina would have helped a lot.
2019, we lost due to Shikhar Dhawan got injured. Pant was new to team, DK+KJ was not a good choice in XI itself. Number four was not good enough. Chahal+Kuldeep didn't get good enough backing after CT2017 final.
2017 we lost due to Kumble saga and bit of ego of Kohli. Also Kohli focussed more on test matches that time.