I think the reason people write their own bug tracking systems (in my experience) are,
- They don't want to pay for a system they see as being relatively easy to build.
- Programmer ego
- General dissatisfaction with the experience and solution delivered by existing systems.
- They sell it as a product :)
To me, the biggest reason why most bug trackers failed was that they did not deliver an optimum user experience and it can be very painful working with a system that you use a LOT, when it is not optimised for usability.
I think the other reason is the same as why almost every one of us (programmers) have built their own custom CMS or CMS framework at sometime (guilty as charged). Just because you can!