Der Unterschied ist der Befehl:

select upper(feld) from file

Wenn die Datei eine CCSID hat, erfolgt die Umsetzung bevor die Daten an das Programm gehen.

set :f1 = upper(:f1)

Da steckt keine Datei hinter, da es ja Programmcode ist.
Also muss die CCSID entweder in den D-Bestimmungen des Feldes oder im Job definiert sein.