Why would someone need a custom theme or a custom plugin built?
There are many themes and plugins available for WordPress, both free and premium, but they all have one thing in common, they all have limitations. Themes and plugins that you find in repositories and for sale are created to be marketed and used by the widest possible audience. Because of this they need to be built with features that will be most common for a specific type of user. Using them generally means compromising what you want to meet what is available rather than getting exactly what you want.
Are you willing to compromise what you want? Or do you expect to get exactly what you ask for? If you’re willing to compromise then you’ll probably find something that you can use. If, on the other hand, you’re not willing to compromise then the chances of finding exactly what you need will be significantly lowered.
There is a popular myth that WordPress is limited in what it can do, that it’s not suitable for large, complex or unique types of businesses. The truth is that what can be done with WordPress is only limited by the knowledge and skills of the developer.
Speed & Efficiency!
Existing plugins and theme are made usable by a wider audience by building in more options and settings. Chances are that most people will not need or use all of the available options and settings. Each option and setting must still be checked, database queries made and alternate code run depending on the values of those options and settings are. All of these options and settings, db queries and code effect the performance of a site.
Custom built themes and plugins do not have a lot of extra options and settings. Instead they are built do to exactly what you need them to do with only the options and settings that you require. This makes them faster and more efficient, as well as less prone to being hacked if they are done right.