A free form "full name" text could be the solution, but then the problem is forcing a formatting on it so that one person always puts the same thing in this field. Should I include second names? Accents? Is that family name first or second? At least, with clearly labeled fields you are already able to tell Adam Smith from a Smith Adam.
Webshops usually are happy with name + current address but there are administrative domains where this is not acceptable.
Because that's also a cultural bias from (some) western countries. And even then some countries that "insist" on First/Last name don't have Middle names.
You might also want to split First/Last names to display things like Mr. Smith
In practice (especially for government purposes), John Smith is not only John Smith, but John Smith born in Day-Month-Year, in City, etc.
In general, websites don't depend on these names for identification; if a site refused to sign me up because I shared a name with another "Smith, John" then I would rightly be irritated. So why do (many) sites insist on collection first and last names separately, as opposed to just a "full name" field that would be used to address me on the site or via email? Is it purely a data collection / advertising / monetization thing?