A fundamental assumption in special relativity is that the speed of light is constant in all inertial reference frames, which was first established empirically via the Michelson-Morley experiment. From a general relativistic perspective, we would say that the speed of light is constant in the absence of a gravitational field. Now, since the Michelson-Morley experiment was carried out in the presence of Earth's gravitational field, wouldn't their findings of the constancy of the speed of light then contradict the fact that general relativity implies that the speed of light is in fact not constant in the presence of the gravitational field?
The speed of light is always locally the same i.e. $c$. The term locally means that any observer measuring the speed of light at their localtion will always get the result $c$ - just as Michelson and Morley did.
You are correct to say that the speed of light is changed by a gravitational field, but this means that an observer measuring the speed of light at some distant location in a gravitational field will get a value that differs from $c$.
For more on this see Does gravity slow the speed that light travels?, or a search will find you many other related questions.
Your statement is not precise enough. It should read "general relativity implies that the speed of light is not constant when the observer is in a different place in the gravitational potential than the light is". Also, Michelson-Morley does not measure the value of $c$. The experiment only determines that the speed of light is constant in inertial frames related by a velocity boost.
If you are in free fall in the Earth's gravitational field (or being weakly accelerated by the Earth pushing on your feet), there is a locally Lorentz frame around you in which you will measure, using your meter stick and clock that you are carrying, the standard value $c$ for the speed of light as it passes near you.
However, an observer somewhere else in the gravitational potential, say far from the Earth, will see a different value of the speed of the light that is passing by you. He will use his own meter stick and clock to conclude the speed of light is slower than the standard $c$ as it passes you. He will also conclude that your meter stick is squashed, and the time between ticks of your clock expanded. The observer will conclude that you did your division correctly (number of squashed meters)/(number of expanded ticks)=$c$ (standard value), but using his own meter stick and clock he measures $<c$ .
You are standing beside the Michelson-Morley interferometer on the Earth, the fringes don't change as you rotate the arms to be along or against the flow of the supposed ether, you conclude the speed of light is a constant no matter what velocity boost inertial frame you are in. You don't conclude any thing about the actual value of the speed of light which you could measure by other means to be the standard $c$. In fact, the far from Earth observer also sees the fringes do not change as the interferometer is rotated, and also concludes the speed of light (which he measures by other means to be $<c$) is independent of the velocity boost of the interferometer.