Good developers know that writing code is only 1/10th of the work. Then you have to test it, write automated tests, support it, maintain it, etc, etc.
I have contributed to open source before. I often have time/energy to write the original patch, but not enough to write tests and whatnot. Rather than feeling good about my contribution, I typically feel guilty about not supporting the change as much as I should. That feeling of guilt leads to hesitation every time I see an opportunity to contribute.
tl;dr: laziness