I think about it this way. If I miss my flight due to circumstances outside my control and need to reschedule, they’re going to charge me. And I know that, it says it right in the agreement I approve when I buy tickets.
In this case they have to make a change because of something outside their control, however instead of honoring the agreement and US law they’re telling me I just need to accept it.