I'd translate those sentences in this way:
他没有我高: "He isn't as tall as me." Or more literally, "He hasn't got my height."
他不比我高: "He isn't any taller than me."
As others have said, the first one, using 没有, is clearly saying that 他 isn't as 高 as 我. It's an inequality, and you use it to establish that one is more than the other.
Usually when you use 不比, you're indicating a sort-of equality. Like "these two things are in the same ballpark." You'd use it to indicate that it isn't meaningful to say which one is greater.
If someone said "他不比我高," my expectation would be that 他 and 我 are roughly the same height, with 他 maybe being the slightly shorter of the two (but that's not a rule).
"McDonalds isn't any more expensive than KFC."
The expectation is that if a meal at KFC costs 20元，then a meal at McDonalds could cost 18元 or 22元, and that would be acceptable.
If the McDonalds meal actually cost 10元, well that's a meaningful difference and you'd want to use something else... Like "麦当劳没有肯德基贵."
Hope that helps :)