用动能定理和机械能守恒定律算出来应该相同。你的上一种做法出错了,用动能定理对M1列方程是错误的,因为M1受到的轻绳的拉力F不等于M2g。实际上,轻绳的拉力F要大于M2g,正确做法是分别对M1M2列方程:M1gh-fh=M1V^2/2;fh-M2gh=M2V^2/2;两式联立可求出结果。你的第二种做法正确!
上边那种解法中,丢了M2的动能!