Это связано с вашей операционной системой, а не с Python. Например, в Windows файловая система нечувствительна к регистру, а в Linux она чувствительна к регистру. Поэтому, если я выполню ту же проверку, что и вы, в системе, основанной на Linux, я не вернусь при совпадении без учета регистра -
>>> os.path.exists('F90')
True
>>> os.path.exists('f90')
False # on my linux based OS
Тем не менее, если вы действительно хотите найти решение, вы можете сделать это -
if 'f90' in os.listdir(os.path.dirname('PATH_TO_foo.f90')):
# do whatever you want to do