The problem occurs because of duplication of customer id.
For Ex: Cust A may have ordered through ship mode Delivery Truck as well as Express air. When Tableau calculates Count distinct, it will be calculated as 1 in each of the above category(1+1 = 2). But when comes to total, tableau will calculate count distinct at overall level. i.e it will not consider ship mode separately. Hence it will not give result as 2, instead will give result as 1. you can check this by enabling row total which will come around 1130 for 2010 instead of 1401.
So, it is better to create separate calculated field for % using window sum computed using table across.