Welche Delphiversion hast du denn? In der aktuellen (auch kostenlos erhältlichen) Version liegt die Funktion in der
Unit System.SysUtils, die dann oben hinter uses in der Liste stehen muss.
Kompilieren wird das aber trotzdem nicht, denn ShellExecute erwartet einen PChar, keinen String, und hat auch andere Parameter als Dalai geschrieben hat (man beachte die eckigen Klammern):
ShellExecute(0, nil, 'cmd.exe', PChar(Format('/k copy "%s" "%s"', [Prog, Ziel])), nil, SW_SHOW);