When infrastructure is code, you just spin up a new machine...no thinking involved. Also, since you're used to deploying this way, the process is smooth and as quick possible.
When you build the server by hand...you're often searching around for old ssl certificates, installing packages you forgot were dependencies, etc. Takes a long time to get it right.
If you're skeptical of the cost/benefit of the approach, you realize really quick that it's worthwhile when stuff starts to fail. Especially if it happens more than once.
Most IaC describes how something is configured, you should also describe why something is configured. Most IaO platforms allow you to write comments, make use of it!
Also, then let's say you get a mega-enterprise customer that wants to host it in their own cloud account, you simply apply the same configuration to that new account. It's quite something to see thousands of cloud resources created over the space of an hour, thinking how long it'd take to do it by hand.
The old way straight up setting up a new server could eat hours of time, let alone the network, etc ... now I can copy and paste.... and I know there are no variations, someone didn't miss a setting, and so forth.
That's a crazy big cost saving.
Longer:
Physical hardware is hard.
I worked with data center networking for a long time and the efforts to generic-ify everything enough to be predictable was endless.
Eventually you have so much identical redundancy and when VMs came around you just wondered ... "wait this has to be able to go farther" and here we are.