First, you will almost always need displacement and/or normal map if you’re exporting a highly detailed model from ZBrush. Other apps can’t usually handle the polygon counts that ZBrush does.
Which maps you use depend upon your rendering engine. Obviously you can’t use any map type that your renderer doesn’t support.
Bump maps are pretty much universal. They’re also the most basic, and least sophisticated. This means that they give the poorest results.
Displacement maps – with the right rendering engines – give amazing results that actually change the silhouette of the model. They come at the cost of high memory requirements and render times. The finer the details that they’re being used for, the longer it will take to render their effect.
Normal maps are like bump maps on steroids. They give more realistic effects than bump maps and render super fast with minimal resource overhead. They just won’t change the silhouette of the model.
Normal maps together with displacement maps give the best of both worlds. The displacement map is used only for medium-frequency detail: stuff that actually affects the silhouette of the model. The normal map is then used for all finer details. This combination renders much, much faster than if a displacement map was used for everything, and in most cases looks just as good.
3D work is really about efficiency. You are trying to get the best results with a minimum of time. This is why you don’t bother with details that won’t even be seen in the final render. That includes stuff that’s out of sight of the camera. But it also includes other stuff. Why render displacements if the displaced details are too fine to affect the silhouette of the model, when a normal map would give identical results much faster?