Why does wp_get_attachment_image_src return the wrong size, when the correct size exists?

Try this function:

woocommerce_get_product_thumbnail();

This seems to be the default function to get a product thumbnail, as you could see in wc code base
By default it will return woocommerce_thumbnail but seems like it accepts other sizes in the first parameter.