1) It is never certain that the target will have a dll. Even if they do, it could prove to be incompatable. Static linking will solve this problem. It will increase the size of your EXE though.

2) Should be, but not a certainty. You can never be totally sure about dll's on target machines. Either static link or distribute the dll's. The only downside to static linking mfc is the increased file size, i doubt the increase will be as much as the dll size though.

3) I expect there is a slight speed decrease using MFC but it is probably unnoticable. MFC is basically an OO wrapper for the some of the API after all.
If you find you are getting on OK with MFC, carry on learning it and then move to wxWindows, basically a stable version of MFC with much the same code.