This is likely related to https://blender.stackexchange.com/a/83096/29586 - ie, the sequence of the modifiers in the modifier stack. Ensure the Hook modifiers are above the cloth sim modifier - otherwise the cloth will apply first (to the unmoved vertices) and then the hook modifiers will move those vertices after the sim - rather than the sim taking account of the new location of those vertices.
EDIT I've put together a test and this is working as I would expect - ie, with the hook modifiers 'above' the cloth simulation. Here's the setup :

The 'cloth' consists of a subdivided plane. I have added a Vertex Group named 'pin' and assigned two vertices on the top edge to it. I selected each of these same vertices in turn and used Ctrl+H to 'Hook to New Object' to create two new empties hooked to those vertices. Note : It's important to use the exact same vertices for the vertex group as is assigned to the hook.
Using keyframes I animated the right-hand empty.

This produced the following animation :

This only works with the hooks above the cloth simulation in the modifier stack.

Blend file included 
What's frustrating is the hooks will move perfectly while the sim is running and affect the cloth sim as expected. But once the sim resets, the stretched edge effect above occurs.
– xcelspreadsheet Feb 15 '18 at 13:27