As someone who's commuted into central London for 30 years, this is very familiar. I have a theory (no idea whether it's right or not) which is this:
Most decent people, when on a busy tube, will give up their seat for someone in need, if they're on a day out. However, when you make this journey hundreds of times a year, you come to realise that there will almost always be someone who needs to sit down, and if you're always the first one to your feet to say 'Would you like to sit down?', then you're destined to spend decades of your life travelling standing up. When you pay thousands of pounds for a season ticket, that really starts to grate.
Before anyone suggests it, I did bike in to work for a while, many years ago, but when I ended up in A&E one night I decided to stick to public transport and save the cycling for less dangerous terrain.
So I think that commuting has turned into a bit of a game of chicken. There will usually be a few people willing to give up their seat for a deserving cause* but they rather someone else did it, so they leave it as long as poss.
*Whole other discussion.
Elderly people, definitely.
Disabled people, definitely.
Pregnant women... (prepare to judge me harshly). I will give them a seat, but I'm usually thinking 'You chose to get pregnant, so why should I be inconvenienced by your lifestyle choice which, by the way, is contributing to global overpopulation which is the biggest problem facing mankind?'