This is not due to poor training, it's the result of Directed Attention Fatigue, and it can't be fixed by better training.
People trying to get weapons on planes is rare, and a screening agent's typical day will involve looking at thousands of ordinary, boring scans with no intervention required. In situations like this, the mind starts to fill in the blanks and predict what the next scan will be and effectively "zones out".
The best way to fix the problem would be to introduce a steady stream of "false weapons" into the screening process and reward the agents for finding them. Of course, that would be disruptive in other ways.
It's not that the agents are not stupid, lazy, or poorly trained. It's just how we humans are wired.
BTW, this is the same reason why the "human assisted" self-driving cars are so dangerous. Humans can't be constantly vigilant when nothing is happening.
Sure we can blame the TSA agent for failing to find the knife. We can (and will) blame the drivers for not taking over control. But in both cases, the problem is that people have designed systems that assume humans can simply choose to ignore our own psychology, and do so at scale.