By default, MATLAB will cache functions and files for faster finding and executing of them. Generally files newly added to folders will be found properly, but sometimes it needs to be told to rehash before it will detect the new file. That it finds the file with edit and ls likely has more to do with those commands using a different system for finding files than the execution engine.
If rehash doesn't do it for you, try rehash toolboxcache just to be sure. Restarting MATLAB is something of the nuclear option here, but should work in almost all cases.