Yes, sorry, I removed tf = t, if kept the code produce wrong domain.
This modification gives correct domain and tf (the plot is still wrong):
eqs = {r''[t] == -{0, 1}, r'[0] == {2, 3}, r[0] == {0, 0},
WhenEvent[r[t][[2]] < 0, {"StopIntegration", tf = t}]};
sol = NDSolveValue[eqs, r, {t, 0, 8}];
sol["Domain"]
tf
{{0., 6.}}
6.
I.M.