Semicolon, double and single quotes are interpreted differently and without knowing the syntax needed for SSISDeploy.exe, the first ; after "catalog" is going to kick off the call, since it's not escaped which inevitably lets the exe fail due to argument mismatch.
My best guess for the Syntax in Powershell would be:
.\SSISDeploy.exe -s "C:\<...>\FinProj.ispac" -d 'catalog;"/SSISDB/Fin";"TESTSERVER01"' -at "win"
-s is most likely the source, meaning a path will be passed here. Double quotes will do the trick.
-d seems to be rather finicky in the required syntax but carries semicolon and double quotes which cause a problem to Powershell without escaping. Better stick to the cmd-syntax and put the entire content into single quotes. If the flag is taking an array, a clean powershell example could look like: -d "catalog","/SSISDB/Fin","TESTSERVER01"
-at looks like a standard flag that takes a string as value - go with double quotes
If you want to try casting all flags into an array, try:
$flags = "'C:\<...>\FinProj.ispac'","catalog;/SSISDB/Fin;TESTSERVER","win"
and run the thing like this:
.\SSISDeploy.exe -s $flags[0] -d $flags[1] -at $flags[2]
Hope this helps. Like I said, I'm not experienced in SSISDeploy.exe but since this issue is escaping-/ character-interpetation-related, these hints should help you out.