Trying to understand a "CMS" by using Wordpress as an example won't get you very far. Wordpress is a blogging engine, not a CMS. The core product only understands blog posts and things related to blog posts. People call it a CMS because it has a huge library of plugins which attempt to bring in other ways of modeling content, but they do not extend the Wordpress concept of content, they simply patch in their own. Wordpress itself only models blogs. Wordpress is not a CMS.
Also, a CMS is a "content management system". The theming capabilities available in Drupal, Wordpress, Joomla, or any other "CMS" really aren't as important to a real CMS as the admin interface is, at least in today's web landscape. In fact, most of these systems have adopted an API-first approach to their content management, with a lot of newer CMS completely ditching the theming support altogether. A headless CMS does exactly one thing: provides a UI for someone to structure or manage content, but doesn't care at all about the theme.
Not long ago, CMS was synonymous with the website. Nowadays, it is common for the content in a CMS to be published across many different channels: websites, mobile apps, advertising, targeted email campaigns, etc. Today's CMSs are designed to make it possible to host all that content in one place, and let various systems consume that data however they need to in order to get their job done.
The answer is pretty straightforward: business people, marketing folks, SEO experts, and the like either don't want to or don't know how to build a website without one. They aren't programmers, their job is to make and publish the content. A CMS is designed to let these non-technical users just create and manage their content without thinking about the techy stuff underneath.
Developers are lazy. They have other things they would rather be doing than taking a client's word doc and converting it to Markdown so that an SSG can publish it. They don't want to waste time with data entry or fixing typos. Those are the jobs of the business folk I mentioned above. By giving the business a nice, pretty CMS, he can continue to be lazy and focus on the fun stuff around web development.
Again, because developers are lazy. While some developers are more comfortable writing blog posts in Markdown, one may simply prefer to write in a WYSIWYG editor.
In addition, a good CMS will put constraints around the data you are entering. Front Matter won't tell you that you spelled "title" with two "i"s and you'll be scratching your head for a while wondering why the title of the post isn't displaying correctly. A CMS gives you strict guidelines so you can only enter valid data, and you have greater assurance that your content is set up properly before you go publish it.
And did I mention that developers are lazy? Yeah, sometimes it's just easier to set up a single CMS that manages both content and themes and not have to worry about setting up triggers and deployment pipelines. In this case, I would recommend October CMS as the CMS-of-choice for developers. It was tailored to the developer (unlike most CMSs), which allows the developer to turn it into the perfect product for the client. If you are the client, then you just get to have a ton of fun tinkering around with a really easy and powerful batteries-included web framework.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.