They are essential because they know things and think logically. You can build a website without a developer using Squarespace and you can do it for free with WordPress. You can build a form based app with ServiceNow and you can do it for free with (shameless plug for my free tool) Polyapp. You can build video games in Unity. There are similar no-code tools which let you build apps for Android and iOS.
A lot of people will jump at this and say, "but without a developer, you can't calculate X Y Z!" or "those tools aren't flexible enough to replace the app I'm building!" Obviously someone needs to code everything, but in large developer ecosystems someone has probably already coded something just like what you're writing and your job is reduced to configuring that thing. Most of the code I used to write was configuring components someone else wrote on the front end and transforming data from the database into the UI and back again on the back end. Even those things are just configuration. HTML is configuring components defined by the HTML standard. Typing out a data model in C# and setting up Entity Framework is just a way to configure the .NET framework. You could write a UI with all of the different choices for HTML and Entity Framework model choices as a form, and have someone select from the list of choices and all of that work would be poof - gone. Incidentally, this is sort of how Polyapp works.
Most application coding doesn't need to be done by someone with knowledge of how to set up Visual Studio or the intricacies of planning and developing an object oriented data model. Most development work could be done by someone who has a problem sitting down, finding a template for a solution to their problem, and then going through many, many, many options describing the solution and adjusting them to fit their needs. Doing things themselves would save them a ton of time and heartache when the thing they paid for doesn't turn out the way they wanted. But that's not what happens.
It's not what happens because small fractions of every applications require a developer, and developers aren't educated to use a hybrid model with some no-code development and some code. They believe the only options are 100% coded by me or 0% coded by me.
It's not what happens because most people have no clue that low-code or no-code tools exist, and even if they do they don't understand concepts like foreign key columns and one-to-many references.
It's not what happens because creating apps requires dozens of steps and most people aren't good at logically thinking through each step.
It's not what happens because developers know things and think logically.