How to fetch WP_User_Query with multiple role arguments [duplicate]

WP_User_Query only accepts a single ‘role’ argument, and since your array has the same key twice only the second is getting used:

array(
    'role' => 'vendor',
    'role' => 'freevendor',
);

Is the same as:

array(
    'role' => 'freevendor',
);

You could make two calls, one for each role set:

$user_query_args = array (
    'role'       => 'vendor',
    'orderby'    => $orderby,
    'order'      => $order,
    'meta_query' => array(
        'relation' => 'AND',
        array(
            'key'     => 'pv_merchant__experiance_dropdwon',
            'value'   => $_POST[ 'pv_merchant__experiance_dropdwon1' ],
            'compare' => 'LIKE'
        ),
        array(
            'key'     => 'pv_merchant_specialization',
            'value'   => $_POST[ 'pv_merchant__experiance_dropdwon2' ],
            'compare' => 'LIKE'
        )
    )
);

$vendors = new WP_User_Query( $user_query_args )->results;

$user_query_args['role'] = 'freevendor';

$freevendors = new WP_User_Query( $user_query_args )->results;

And then combine the two result sets. Or take a look at the comment that shows how to write a meta query combining the two roles.