Shipping used to be a global list of methods each carrying its own availability rules, which meant every method had to know about every country. 2.6 inverted it: a zone is a set of regions, and methods belong to zones.
$zone = new WC_Shipping_Zone();
$zone->set_zone_name( 'European Union' );
$zone->add_location( 'DE', 'country' );
$zone->add_location( 'FR', 'country' );
$zone->add_shipping_method( 'flat_rate' );
$zone->save();
The upgrade migrates existing methods into a “rest of the world” zone, which is correct and rarely what anyone wanted — so a shop that upgraded without touching the settings is quietly offering every method everywhere. The other thing to know is that a customer matches exactly one zone, the first that contains their address, so overlapping zones are resolved by order rather than by merging.