With the setup you described above you cannot use .Page.Title because with the fileExists function you are looking for a PDF located under the staticDir and therefore Hugo cannot know under which Page is this file referenced.
You need to “print” out the filename. If .Page.Title exists and has MyFile as value then the following should work:
{{ if (fileExists (printf "static/attachments/%s - Schematic.pdf" .Page.Title) -}}
A possible issue I would expect might be the spaces in the file name. Maybe try to work without them so you don’t need to find out how to encode the search.
I im new to Hugo (discovered last week)…and have done 50% of page for my electronics blog…i customize template Dimension and your code works excellent, works with space between and - in filename so this solution works wonderfull.