Paste the following code in functions.php:

/* Shortcode to display out of stock products */
add_shortcode( 'out_of_stock_products', 'bbloomer_out_of_stock_products_shortcode' );
   
function bbloomer_out_of_stock_products_shortcode() {
 
   $args = array(
      'post_type' => 'product',
      'posts_per_page' => -1,
      'post_status' => 'publish',
      'meta_query' => array(
         array(
            'key' => '_stock_status',
            'value' => 'outofstock',
         )
      ),
      'fields' => 'ids',
   );
    
   $product_ids = get_posts( $args ); 
   $product_ids = implode( ",", $product_ids );
    
    return do_shortcode("[products ids='$product_ids']");
}

Then, use the following shortcode to display the products:

[out_of_stock_products]

Source: https://www.businessbloomer.com/woocommerce-display-stock-products-shortcode/