Competition doesn't have to be between individuals, though - there could be a level in between that gets the best of both worlds.
For instance, getting companies to compete against each other could provide an excellent drive to increase donations - particular amongst rival firms - without singling out individuals. The total amounts would be significant enough that they aren't underwhelming on the national or global scale. Alternatively, a local area authority level.
Just because the cause is good doesn't mean that competing is bad or inappropriate - surely XPRIZE exemplifies this?