Try a couple things.
First, try profiling: profile on; filename = uigetfile; profile viewer. This should tell you which parts are running slow.
It could very well be a memory issue if the directory is large or networked it could be slow to load. You can check this by running a memory monitor like task manager on Windows and watching it while calling the function.