The way I see it, most people don't like to 'just' give away money. People who participate in 24-hour relays and other task related events are practically 'working' for the donation money. The participants are 'working' on behalf of the donees. 'Just' giving away money sounds like giving a 'hand out', a phrase and action that is well stigmatized in the US.
They also foster a sense of community, are funner and are more social than just going door to door, calling over the phone etc. People like to get out, get together and do stuff. A lot of them have food and drink donated as well, which in turn lures more people to the event.
Though one thing that does piss me off is the act of receiving a trinket for donating. Braclets, stickers, pins etc It's like a badge to let people know "I am wearing a braclet. I donated. I am a good, decent person." How about you just donate and leave it at that, knowing in your heart that at the very least, you did something. While no doubt relatively small, the amount of money that could go to whatever the cause may be, I am sure adds up quick. If you want a 'badge of honour', go help with something tangible, like helping with a house or cleaning up the neighbourhood etc. At least then you can say "I helped build that house" instead of walking around, head held high because of some cheap trinket pinned to your chest.