It’s possible to create web Forms that can be shared with a public URL and used by non-collaborators (people who cannot edit your Airtable base) to submit a record into a table.
It definitely has its limitations, but I use the feature frequently to have people submit basic information or data who do not need to see the processing done on that data – and this allows me to avoid charges for those people since I do not need them to be users.
As far as approval – you could achieve something similar by have two separate tables; one table receives incoming form submissions; those submissions are “approved” by linking them to the second table, and the second table pulls in all the data needed from them with Lookup fields. This way you can have a separate table with only the “Approved” records.
Again, it has its limitations, and isn’t a perfect solution, but it is a workaround that could get you at least close to the functionality you are looking for.