There are several valid reasons I can think of to develop a tool that already exists.
1) Software has a limited lifespan. A lot of bioinformatics software is developed by grad students or postdocs who leave their job after a few years and go on to something else. Sometimes the project moves with them and is maintained, but many times the code is left to rot on a server in their old lab. On many occasion I've found tools that were designed to do exactly what I wanted but the tool was developed 10 years prior, so it is often difficult or impossible to compile and almost guaranteed to break if it does any file parsing (except maybe fasta).
2) Performance. Even if you find some old code that works, chances are that it was not designed with the scale of modern data sets in mind and it may be too slow, if it works at all.
3) Implementing new methodology. Computing technology and technology in the life sciences moves so fast it's difficult to think of tools that are more than 10 years old and are still relevant. There are definitely some out there, but quite often you can benefit from rethinking the problem with your data and resources in mind and come up with a better solution. You do not have to think very hard to manipulate a file of 10 sequences, but the situation is different if you have millions.
4) Science is competitive. People develop protocols in parallel all the time, always have. It is good to be efficient and not waste time on something that has been solved, but you also don't want to spend days trying to make some awkward script work on your massive HiSeq data set. There are always deadlines you are facing as well, so sometimes writing the code is easier than trying to understand someone else's code.
5) It is easier. For simple tasks, it may be much faster and easier to just write your own method rather than depending on a large library like BioPerl to always be there, especially if you are going to be moving your code around.