For bonus points: Instead of using a single plural “s” you should make it more obvious that a variable refers an array … something like $FileList or $FileArray.
?? I don’t get it. What do you mean?
For bonus points: You approach is very inefficient. You query ALL services again and again for each individual executable in your folder (and subfolders). I’d collect the file list and the list of processes in advance and compare them with Compare-Object.
You could also just call Get-Process once and look at .MainModule.FileName and match to the directory you are targetting. For sub directories as long as the path contains the root directory you can target all sub-directories the same way.