Either way it's done, providing glasses to people who can't pay for them is a charitable act, and humans are not very rational about charitable acts.
Given two choices:
1) Give $5 to a program that provides brand new custom prescribed eyeglasses to people who need them but cannot buy them
2) Give $10 to a program that provides shitty, old, out-of-date, recycled eyeglasses of questionable prescription to people who need them but cannot buy them
Many people will respond more supportively to #2 and see #1 as fundamentally unfair ("I worked hard to earn the money for my glasses, why should a needy person have something just as good as mine? They should count themselves lucky to have anything at all!"). Many people see it as a moral imperative that the poor should suffer.