I believe it is related to the WooCommerce default mechanisms.
however, if you want to display the shipping cost even if it’s £0.00 adding this snippet to the functions.php of the currently used theme should do the job:
<?php
add_filter( 'woocommerce_cart_shipping_method_full_label', 'ls_woocommerce_cart_shipping_method_full_label', 10, 2 );
function ls_woocommerce_cart_shipping_method_full_label( $label, $method ) {
$label = $method->get_label();
if ( WC()->cart->display_prices_including_tax() ) {
$label .= ': ' . wc_price( $method->cost + $method->get_shipping_tax() );
if ( $method->get_shipping_tax() > 0 && ! wc_prices_include_tax() ) {
$label .= ' <small class="tax_label">' . WC()->countries->inc_tax_or_vat() . '</small>';
}
} else {
$label .= ': ' . wc_price( $method->cost );
if ( $method->get_shipping_tax() > 0 && wc_prices_include_tax() ) {
$label .= ' <small class="tax_label">' . WC()->countries->ex_tax_or_vat() . '</small>';
}
}
return $label;
}
?>