On a website, you have full control over the on-page optimisation. You choose what goes in heading tags, you get to set the meta tags and title, you can use appropriate semantic tags throughout the content, you can organise the site and page structure to suit what you want, and you don't have to include anything that isn't needed.
For example, looking at a local business' page on Facebook, the <meta description> is
Facebook is a social utility that connects people with friends and others who work, study and live around them. People use Facebook to keep up with friends, upload an unlimited number of photos, post links and videos, and learn more about the people they meet.
It's a generic bit of boilerplate that says nothing at all about the local business. The company name is in an <h1> but all the other heading tags relate to various aspects of Facebook and not the page contents. The code quality of the page is appalling, and what little content there is buried under mountains of scripts and extraneous Facebookness that does not in any way relate to the business itself.
I'm not saying that having a Facebook page is a bad thing, but for any serious business it can only ever be an incidental complement to a proper website, and is in no way a replacement for one.