WordPress is the most popular CMS (content management system) in the world with a market share of 20% of all websites on the internet.
However, here are a number of reasons why not use it.
Security & hacks
Because of it’s popularity, WordPress is routinely targetted by hackers. Often people say that’s not important to because no one would want to hack my site. But hackers target vulnerabilities in exactly your type of website because they aren’t regularly maintained. Once compromised, your website is used to send spam across the internet. WordPress is extremely vunerable unless regularly maintained.
WordPress have a very mature development framework, however there is nothing to stop developers adapting their own approach at every level. This has two negative consequences. It becomes extremely difficult to manage code if you can’t anticipate where the developer is making their coding updates, especially if you have more than one developer working on a project. And if developers are not following the established development framework you application is likely to fail after the next major core WordPress update.
One of the best features of WordPress is the availability of a massive library of free or commerical plugins.
There are two drawbacks to this. Not all plugins compliment each other and installing one plugin can disable another, causing significant development time fixing the issues.
Second drawback is that because a free plugin may offer 90% of what you want, people often settle of sub standard solutions without asking what it would cost to have their actual requirement delivered as desired.
Availability of developers
Not all developers are created equally. WordPress is free, it’s plugins are free and there are tons of tutorials on Youtube to help you get development started. However at it’s core, WordPress has a mature framework for ‘correctly’ developing applications.
Few ‘competitively priced’ contractors have been trained properly to develop applications using the framework. The net result is you hire a developer who gets their task done on time and to a low budget. However, that developer didn’t comply with the framework, so unless you rehire them, the next developer (experience or not) will have to learn what the previous developer did before last time before they can begin to look at your next project.