A branch instruction is conditional. If some condition is met, program flow jumps to some other location. If the condition is not met, the next instruction is executed instead.
It also sometimes has to do with language you are programming. I believed in 68HC11 code, a jump is for an absolute position, and a branch is relative. Check out the BRA and the JMP commands.
From what I have seen, it is more loose than an absolute definition.