I see no 'ethical' problem here, just one of economics and philanthropy.
Do the work, recover your cost of materials and donate your time and talents. You can even tell the person who ordered them what you are doing, not to be bragging but being honest. If the person who orders them is capable of giving you a 'tax deduction receipt' that is another possibility. Figure a fair cost and ask for the receipt for that amount.
This is, I feel, more than fair.
All those tee shirts they give away at the various charitable events are covered with "Sponsors" so they are reaping a benefit from their donation, i.e., advertising and PR. And face it, they have a "budget item" for this purpose!
My thoughts and Opinions...
~~~GrayBeard~~~