I have been playing around alot with this feature and had to actually re-do my London map to accommodate it's mechanics. In the original post above, you can clearly see the water behind the dam is higher, which should be enough. However, this is not how the game works in this case.
What you MUST have for any hydro plant to work is the water source / spawner to be higher than the level of the dam. The way the water spawners work is they keep producing water until it reaches a certain level. Once it hits that, it stops producing water. Think of the stopvalve float in your toilet cystern, same principle. If it reaches this level, the spawner stops producing water and the flow stops. The game only detects whether the water is flowing or not and if it stops, then the hydro wont function. In the picture above, whats happened is the game is reading the water behind the dam as a stagnant pond with no flow.
The only way to make them work is to place your dam in a place thats lower than the water source, flow and width are secondary considerations.