Why is surface water warmer than deep water?
The Sun heats water. Its beams can reach only the upper layer of a water body. Besides cold water masses are heavier than the warmer ones. That's why due to convection cold water always goes down while warm water goes up.
To be precisely surface water is not always warmer than deep water. The Sun is the most important but it isn't the one source of the heat.
There are hot springs under the surface of water which can heat it or the deep currents can bring additional warm. Certainly these cases are particular.
Speaking about rivers and lakes of temperate latitudes there's another case when their bottom waters are warmer. During a cold season rivers, lakes and other water bodies of temperate latitudes covers with ice but under it there's still liquid water.
I live in Russia and I always watch people fishing on a frozen river :) So there's must be warmer water under the ice. Otherwise there wouldn't be any fish and fishermen.
Physically water of different temperatures has different density. Maximum density water has at a temperature of 4 Centigrade above zero. Warmer or colder water is less dense. So when a water body cools due to convection during a cold season it cools only until it reaches 4 Centigrade above zero. Then convection stops and the water body covers with ice.
Now surface water has a temperature of 0 Centigrade or less and bottom water has a temperature of 4 Centigrade. This works only in temperate latitudes because far to the north rivers can freeze to its bottom.