Meta Query relation “AND” not working

You mixed meta query and tax query

It should look like this

$query = array(
    'post_type' => 'product',
    'post_status' => 'publish',
    'posts_per_page' => 12,
    'orderby' => 'date',
    'order' => 'DESC',
    'meta_query' => array(
      array(
        'key' => '_stock_status',
        'value' => 'instock'
      )
    ),
    'tax_query' => array(
      array(
          'taxonomy' => 'product_visibility',
          'field' => 'name',
          'terms' => 'featured'
      )
    )
);