GUIs are nice to set up experiments, knowing what you can set up and changing stuff quickly. For example, setting up a network and a subnet from scratch, creating a VM, connecting to it from the browser and setting up stuff. Could you do that with PowerShell, the CLI, ARM templates or Terraform?
Yes, but it'd be slower since you'd have to go through the docs to find the name of what you're looking for and typing it. Then type another command to see if the changes were applied. Another one to test the result... A huge PITA for experimenting.
Of course, for actual production use, you should definitely have some sort of IaC set up and use that. But for testing or home use (see the tech guy that uses a storage container and Front Door for a static website) the GUI is good enough.
Case in point, if you are using Microsoft 365 and Exchange Online, you can do a lot of administrative tasks via PowerShell modules. But if you want to run a report on how many emails a set of mailboxes have received in the past 30 days, the message trace PowerShell command can only do up to the past 10 days. Anything beyond 10 days requires going into the Exchange Online admin portal and requesting a report that Microsoft will generate for you several hours later.
That is possible. Annoying that you can get the last 10 days in a second but need to duct tape together something if you never want to interface with the gui and then instead of a few hours you have to collect the data over the entire 30 days (but only after you start doing this).
There are a lot of warning and error options. Turn the guiderails and sanitizers on during development and testing. Turn the optimizations on when you ship.