Technically, they are same. But, in my opinion there is a little difference on delivering nuance.
어야 하다. could be more like "need to do." And
어야 되다. is more like "need to be."
For example,
일을 하려면 밥을 먹어야 한다. Is more like "you need to eat to perform your work."
일을 하려면 밥을 먹어야 된다. Is more like "you better be eaten to perform your work."
But this is just my opinion. And there's no difference in general dictionary.