Why can’t more older 737s be retrofitted with more newer winglets?
Winglets change the spanwise loading on the wing. By increasing the effective span of the wing, lift is increased towards the tips of the wing. With more lift there, you get an increased bending moment on the wing.

All this means is that you can't just put winglets on or change the ones you have. You must retrofit the structure of the wing which is very expensive and requires significant downtime. It also adds a weight penalty which decreases the benefits of the winglet.

For example, on the A320, which was already wingtip fence equipped, going to the sharklets requires removing the skin and reinforcing both the tip and the center wing box near the fuselage. This takes the aircraft out of service for 15 days and involves, I've heard, in excess of $1 Million in parts alone.

On the 737, the list price for the blended winglets is $1.06 Million.

So the answer for why is because it often is not economical to do such a huge modification given the limited lifetimes on older models.