Universal programs are SOOO much better than targeted, means-tested ones.
In a lot of ways the distinction is more practical than ideological. Universal programs are just a lot more effective than means tested ones, both at accomplishing their goal, and at maintaining political support. Look at the difference between support for social security and food stamps. Both are great programs that I really support. Social security is a hugely more expensive program, and is much less ‘well targeted’, in terms of directing its benefits towards those who need it most. On the other hand, social security has been spectacularly effective at reducing poverty among seniors, and is so overwhelmingly popular that even Republicans still pretend to be in favor of preserving it. Food stamps are a tiny fraction of the federal budget, but because they’re targeted to help the poor, they’re seen as outrageous by the large chunk of the population that doesn’t approve of such things, and are constantly on the chopping block.
And of course means-tested programs also require the creation of a lot more red tape and bureaucracy to figure out who qualifies and who doesn’t, ferret out cheaters, etc, rather than just mailing everyone a check / letting all qualified people attend a university for free. Despite all this effort, or perhaps because of it, means-tested programs also have the problem of people falling through the cracks. If a program isn’t automatic, then at least some people who should be benefiting from it won’t. Some won’t know about it, some will forget to sign up, some will be intimidated by the paperwork, some will fall victim to bureaucratic errors, some will screw up the sign up process, and on and on.
Fundamentally it comes down to this: universal programs benefit everyone who gets more value out of the program than they pay in additional taxes to support it, which due to income inequality and progressive taxation tends to be a super-majority of the population. This creates a coalition that will keep that benefit in existence. Means-tested programs on the other hand benefit only people below whatever income level, which tends to be a minority of the population — and unlike the rich and powerful minority that loses out from universal programs, this is almost by definition a poor and powerless minority. This doesn’t create a strong coalition to preserve those benefits, and instead gives those who are barely too rich to receive the benefits an incentive to want them gone. This is an attitude you see a lot: I work hard, why are they taking my money and giving it to those lazy bastards?!? The answers of “those people are more needy than you” and “almost none of it is your money, it’s money from much richer people” tend to not help that much.