I agree with Bruno. The very first time may take around 30 seconds because it has to unpack a bunch of stuff to that weird hidden folder. But once you've done that once, subsequent times just take a few seconds. You can put fprintf(1, 'Now doing this.....'); in your startup code if you want to show the various things your code is doing in the black console window while it's initializing and before your main GUI is shown, or even after. For example in myGUI_OpenFcn() you might have
fprintf(1, 'Now opening mat file (%s) to initialize variables...\n', fullMatFileName);
So put a bunch of stuff in there to keep the user entertained while it launches.