When you make a wire transfer in US dollars in addition to $30 fee, your bank may charge a fee or currency exchange percentage to receive international wire transfers. If your bank uses an intermediary and/or correspondent bank, it may charge an additional fee, either a flat fee or a currency spread. You should contact your bank to find out more about those fees.

When you withdraw your earnings using the Local Fund Transfer, the currency conversion is performed by Upwork’s bank before the funds are sent to you based on the conversion rate at that moment. No intermediate banks are necessary in that case.

As per State Bank of Pakistan's law any foreign currency transaction (in your case $) via a company (in your case Upwork) will come to your PKR account and not your foreign curreny account. This doesn't applies when an individual is sending you foreign remittance.

Best is to contact your bank on their help line and ask their remittances charges/rates etc