Best practice to create required pages

Themes should not create content. Ever. That is plugin territory.

When you activate the plugin, search for pages with a special custom field. Its name should start with an underscore, so it doesn’t show up in the Custom Fields metabox, for example _pluginslug_required_page. If there are no such pages, create your own.

But I would question the underlying problem. Why do you need those pages? There are very few cases where that is really needed, a cart page in an e-commerce plugin maybe. A theme should work without such an requirement.