I was recently exploring and working through parts of Sebastian Lague's Procedural Landmass Generation series. Absolutely excellent series and I would recommend it to anyone looking to learn more about Unity and Terrain in general.
Anyways, I ran into a question that I can't seem to get an answer to. In his series, he walks the viewer through the process of making a Terrain asset in Unity from scratch. Therefore, almost entirely within your code, you're adding a mesh, textures, and adjusting the height and colors of the Terrain. All of which (correct me if I'm wrong) you can do with the Terrain Component on the built-in Unity Terrain GameObject, as seen in another tutorial I'm following (Penny de Byl's Procedural Terrain Generation with Unity, also a fantastic series that I would recommend).
So this leaves me with the question:
What is the benefit of creating Terrain through these methods (Sebastian's methods) as opposed to working with the Terrain GameObject/Components (Penny's methods)?
If you don't use procedural generation to generate your terrain you will have to design it yourself. This in its self isn't really an issue, however if you are going for an endless map you could run into problems.
If you do use procedural generation to generate your terrain you are still a little bit in control of how the terrain will look like, but far less then you would if you were to make it yourself from scratch. It will also be a lot more random. human beings tend to have certain biases.