Creating a Search Array From Multiple Tables

You’ve got the right idea. If you get an array of country IDs within a region, you can pass that array to a meta query IN comparison:

$country_ids = array(1,2,3); // this would be the result from fetching countries associated with a region.
$args = array(
    'posts_per_page' => -1,
    'meta_query' => array(
        array(
            'key' => 'country',
            'value' => $country_ids,
            'compare' => 'IN'
        )
    )
);
$query = new WP_Query( $args );

EDIT- this is assuming the ID is stored, if you’re storing the country names as the value, you should query with an array of the names.