Does an INSTEAD OF trigger gets re-created every time you insert into a view?
The trigger is not being recreated.  sql_text in sys.db_exec_requests is at the batch level, not the query level.  See eg

https://blogs.msdn.microsoft.com/dbrowne/2013/01/18/my-favorite-query-for-investigating-sql-server-performance/

For an example of how to parse out the currently-running query from the larger batch.

That wait is to fetch the page that the row is written to, either on the Clustered Index or some non-clustered index.  So I would look at the index design of the table, and see if it should be better-optimized for inserts.