As I understand it, it goes something like this...
Blender has all sorts of dependencies on external files (or "libraries") to help it run. For example, when loading PNG images, rather than reinvent the wheel and write a completely new bit of code to open up PNG files, instead developers might code Blender so that it uses an external library someone else has already written which contains code to open PNG files. This happens all over the place, not just with images...
Blender dynamic does use these libraries, which makes it smaller, faster, and easier to update (eg if your PNG code has a bug and needs updating, you only have to update 1 file on your system, rather than every program that opens PNGs). On the flipside, if you're missing even 1 of the libraries Blender dynamic needs to run, it won't.
Blender static doesn't use these libraries (everything needed is stored inside the Blender executable), so it's bigger and more of a pain to update. On the plus side, it's pretty much guaranteed to work no matter what libraries you do or do not have on your system. On the downside, it's slower (for example, if you have hardware OpenGL acceleration, Blender static can't use it).
If you're not sure which to use, give dynamic a try first. If it works, great
If not, give static a go.