Funnily enough, it is people who have had experience of being in some financial peril/difficulty who are often the most likely to respond to charitable requests. Sort of a "there but for the grace of god go I" thing- they know what it is like to face difficulty and want to help other people with in the same position. Unconsciously it's about wanting to live in a society where people help one another I think. And the charities who do this kind of fundraising are well aware f this, and train people to apply the emotional thumbscrews pretty effectively.
I don't think that make his signing up for that donation a good or sensible decision, but maybe it might make it more understandable.
In your position, I would have an honest chat with him about it, coming from three angles, but in a very calm way, maybe even writing it down to take some of the heat out of it and enable you to express yourself properly.
Firstly, whether realistically he/you both can afford this in itself.
Secondly, whether he needs to pay attention to how he makes financial decisions- looking at things like head vs heart, planning vs impulse (e.g. can he plan to be impulsive- just set a budget each month for impulse purchases and don;t exceed it). There might be a need to go into past habits, how he was brought up etc with this, but over the long term. Could he look at something like a debt counselling scheme run by a charity, something that will help him with how he makes decisions.
And, thirdly, I would also mention how what happens makes you/your secure future together feel in terms of where you come on his priority list.
I don't think it's the worst thing in the world either, and tbh I would rather be with someone who signs up for a £20 DD to a homeless charity when they can't really afford it than someone who can walk past a beggar when they have plenty in their pocket. But financial security is an important thing, and if he has had problems in the past it is legitimate to address this. And it could be a symptom of something deeper, and that needs checking/addressing.
By the way, I cancelled by donations to Shelter when I found out about the wages and employment terms and conditions they offer their employees. They changed about 6 years ago to much more insecure terms of employment. I thought this was totally flying in the face of their cause- poorly paid and insecure employment is a major contributor to housing insecurity/homelessness and I thought they could set a better example in their own actions rather than just preaching to others.
So could your DH do something like volunteer a few hours at a foodbank or homeless outreach project like a soup kitchen rather than give money to Shelter? That might be a better way to satisfy his impulse to help than giving money? As in better for his circumstances and also do more good for other people. Esepcially as something like the first 9-12 months of his donation will be paid to the company doing the phonecalls, not to helping homeless people.