The GBA is constantly scanning the screen from left to right and top to bottom drawing any pixel that needs to be drawn (whether it is in VRAM or not). Let's say you have some object on the screen that you're moving around and so you tell it to move by pressing one of the keys. If that happens while the scanlines are being drawn, then there's a chance that maybe only half of your character was drawn when you issued the command. Issuing the command moves your character automatically, so when the scanlines continue drawing your character the second have of your character will have moved while the top half stayed in place because they were already drawn. This is called screen-tearing and is very undesirable. The best way to avoid it is to only update positions when the screen is not being drawn. Remember the screen isn't being drawn only during HBLANK and VBLANK. VBLANK gives us the most time to update the state of our characters.
The moral of the story is that we need to be able to determine when the VBLANK starts so that we can have the maximum amount of time to update everything we can. That way we can also guarantee that we only update objects once per frame instead of 100 times or some other random number per frame.
