Sure, they need to "continue" releasing their code under GPLv2 if they want to distribute a version of GRUB that uses GPLv2 (which they do). However, they have no obligation to move to GPLv3 just because somebody else did that with their code.
Now, if GRUBv2 is GPLv3 only and Oracle wants to distribute that then this is another matter. Clearly now they would need to release their code under GPLv3. The point is that it would be them doing it voluntarily.
Distributing code you wrote under the GPL does not obligate you to do anything. "All" the text of of the GPL applies to the people that receive your code but not to you at all. A lot of people seem very confused by this and that is what I was trying to address.
So, when you say that you are releasing code as GPLv2+ you are saying that anybody who gets your code can only "distribute" the software if they license it as GPLv2 or higher (including GPLv3). It does not say that you need to re-release it under a later version of the GPL, any other license for that matter, or that you even need to keep making it available at all.
In this case, you are pointing out that Oracle not only releases GPL code that they wrote but in fact combines that code with code that they themselves received under the GPL. They are now bound by the terms of the version of the GPL that was used for the code they received.
My point is that they are bound by the license they "recieve" not the one they "offer".