Use get_terms to get post_tags but limit to a taxonomy

I’m fairly certain that the taxonomies have nothing truly in common except posts that they share, so I think you can’t avoid running an actual query of posts, in order to learn which categories are candidates for your criteria.

While, it may not be computationally the best method, you could do something like this…

$args = array(
    'post_type' => 'post',
    'tax_query' => array(
        'relation' => 'AND',
        array(
            'taxonomy' => 'my_required_taxonomy',
            'field' => 'slug',
            'terms' => 'my_required_term',
        ),
    ),
);

$loop = new WP_Query($args);

$out_array = array();
while($loop->have_posts()) : $loop->the_post();
    $terms = get_the_terms($post->ID, 'my_variable_taxonomy');
    foreach($terms as $term){
        // note, can use term_id or whatever here instead
        if(!array_key_exists($out_array[$term->term_slug])) { 
            $out_array[$term->term_slug] = 1; 
        } else {
            $out_array[$term->term_slug]++;
        }
    }
endwhile;
wp_reset_query();

arsort($out_array); // edit: arsort is what you want

$slice = array_slice($out_array, 0, 5);

foreach($slice as $key => $value){
    $term = get_term_by('slug', $key, 'my_variable_taxonomy'); // post_tag
    $term_list .= '<a href="https://wordpress.stackexchange.com/term-base/" . $term->slug . '">'.$term->name.'</a>';
}

echo $term_list;