India lost because in second innings they relied only on KL Rahul and Pant batting, if remaining batsmen have scored some runs then target would be high for England. The English team got good start in second innings and rest of batting take over responsibility once the opening pair got out. It's a high scoring game as total 1673 runs were scored in both innings which is highest match aggregate for England vs India in Tests. It's a five match series and English camp will be happy to start the series by winning the test.
In my opinion, the Indian batsmen did not play that badly in the first innings and even tried to do well in the second innings, but apart from KL Rahul and Pant, no one else's batting performance could produce any expected scores.
And yes, the early dismissal of their lower order batsmen in the second innings was one reason behind the Indian team's loss, but what I think is a bigger reason is that their bowlers did not do very well, along with the drop catches.
What a significant achievement it is for the England team, today when I was watching the game, I was thinking it would be a draw, Indian bowlers were struggling to get wicket that is an different topic but if Indian bowlers would deliver defensive bowling and place the fielder in a defensive manner so I am sure England could not chase it in this short period. At many stages today it was looking like maybe India could change the game if they can get wickets early, I think India should have been more on the line and length and avoided trying such balls in which England batsmen were back to back hitting.