Hierarchical Custom Post Types – Show only parent on tax archive?

Figured a simple pre_get_posts would do the trick,

It will, you just need to query posts that have a parent of 0.

Assuming your taxonomy slug/name is literally just region:

function wpse_286405_parents_only( $query ) {
    if ( ! is_admin() && $query->is_tax( 'region' ) ) {
        $query->set( 'post_parent', 0 );
    }
}
add_action( 'pre_get_posts', 'wpse_286405_parents_only' );