Because it's a contribution to society.
Would you take the money if you didn't need it? You refuse the pay, not because you don't need it, but to stop your mind from thinking the thoughts of a slave.
If you could be paid for the SAME work then get paid! If not, some prefer to do the work they want instead of doing the work someone asked them to do.
Because you love it!
Why do people paint in their spare time? Why do people make music in their spare time? Why do people read, and write fiction in their spare time? Because it's something that interests them, it's something they *love*, and it's the very act of creation that provides its own reward.
You can be paid to write free software too! And you can do things for other purposes than money...