I have several different D-Link cameras. I have not seen this problem with the DCS-930L, but on another camera I've noticed if I change the event settings (like how many pictures should be sent per motion event, for example 1 or 6 per event), images can get stuck in memory until the next motion event, and the image I receive is not from the current event, but from the previous event. When this happened, rebooting the camera always cleared up this problem. I've made a habit of rebooting the camera after changing these settings to make sure this doesn't happen, and I don't see this anymore.
My DCS-930Ls actually seem to be quite good at capturing fast-moving action. I have them facing out windows, and they've captured birds in flight, flying insects close to the camera, lightning lighting up the outdoors momentarily at night, etc. Sometimes I also receive images of nothing obviously moving, this might be a missed fast-moving object, or might also be changes in lighting (viewing outdoors, this does happen due to sun, clouds, wind moving trees, etc.). I do set these DCS-930L cameras to 6 images per event, 1 per second, because this seems to produce the best results (I prefer this because most motion events end up in one email, with all related pictures in the same email). Otherwise, I can get too many emails sent too close together.
If your images tend to be too late, this might also indicate the sensitivity is set too low or area not well chosen, and motion either isn't recognized at all, or only finally when the object is nearly gone from view. You might try raising the sensitivity and checking if the detection area is set right.