I made some tests to compare and measure speed of both functions. is_file seems to be several times faster (I used 10000 iterations for both) than file_
is_file and file_exists are two different function that does two different things; file_exists only check if the file exists, is_file tell if the target is a valid file, and (for example) not a directory.
They shouldnt be used for the same goal, so the performance comparison cant be done (imho)