It's pretty simple, it's because Harris only had 3 months to campaign and the vast majority of people aren't politically active and barely know anything about the candidates. Only about 1/3 of the country is significantly politically engaged.
I remember reading a Nate Silver article, sometime before Biden dropped out, that a higher turnout might actually hurt Democrats. So this mysterious 15 million missing voters Democrats are blaming right now, had they manifested this year it could be angry low information voters who are casting a protest vote against Biden this time instead of Trump's mishandling of COVID.
But if they knew that Trump was a fascist and this would be the last election ever if he was elected, there's no way they would vote Trump... except it's not just Trump. Both sides are claiming this is the last election if their side loses, so who's right? Then there's the fact that 3/4ths of Independents don't trust the media, so that tactic might not have worked on them. Either they didn't get the memo (which is unlikely since they know about J6), or they don't actually believe the rhetoric.
Kamala Harris had way more extensive policy written out than the Trump campaign did, and she talked about policy in interviews way more than Trump did. No one cared or saw it.
The problem is Harris is permanently associated with the failures of the Biden administration. Voting for Harris looks like voting for 4 more years of Biden. I remember comments like "Democrats are now going to fix the problems they created" and "Democrats are acting like Trump was in office the last 4 years" which sums it up. My guess is they're angry and they have no interest in policies anymore, they don't believe it's sincere, or it's too little too late.
Of course you could claim all these failures were Trump's fault and here's why, but the problem with these is that they're not decisive. It's not "Trump did X which caused Y". It's "Actually Trump did X more than Biden", or "Trump didn't do X either", or "Y isn't happening at all, that's right-wing disinformation". These arguments work really well if you want them to be true, and not very well if you don't want them to be true.