How can a black hole reduce the speed of light?
Because a gravitational field is a place where the speed of light varies. See Einstein talking about it in paragraph 2 here:
The speed of light varies in the room you're in. If it didn't, your pencil wouldn't fall down. Like John Rennie was saying, the locally-measured speed of light is constant. But's that's only because we use the local motion of light to define the second and the metre, which we then use... to measure the local motion of light. Duh! See Magueijo and Moffat talking about this tautology in this paper.
If the speed of light is always constant then light should escape from a black hole because if directed radially outwards it only needs to travel a finite distance to escape, and at a speed of c it will do this in a finite time.
Correct. But it isn't constant. See this PhysicsFAQ article where author Don Koks says things like "this difference in speeds is precisely that referred to above by ceiling and floor observers" . Or see Irwin Shapiro saying "the speed of a light wave depends on the strength of the gravitational potential":
Since light cannot escape from the black hole that means the speed of light must be less than c near the black hole.
Correct. See Propagation of light in non-inertial reference frames
on Wikipedia. It says this:
"The coordinate speed of light (both instantaneous and average) is slowed in the presence of gravitational fields".
That's what John Rennie was referring to when he talked about measuring the speed of light at some point that is distant from him. But he didn't tell you the whole story. Because the Wikipedia article also says this:
"For example, at the event horizon of a black hole the coordinate speed of light is zero".
That's why the black hole is black. The vertical light beam doesn't get out because the speed of light at that location is zero. Note that the article also says "while the proper speed is c". This is a mistake. If you were at a location where the speed of light and everything else is zero, gravitational time dilation is infinite, and it takes you forever to measure the local speed of light. So you don't measure the local speed of light to be c. Not ever. And the amazing counterintuitive thing about all this, is that when the vertical light beam does ascend, from the surface of a planet, it speeds up.