ok, the output after the integration seems a bit puzzling. but we can ask mma to skip generating conditions and get the same result as Sam:
X[t] = {t^2, (1 - t)^2, 2 t};
dx = D[X[t], t]
dx2 = dx.dx // Expand
jj = Sqrt[dx2]
SetOptions[Integrate, GenerateConditions -> False]
arc = Integrate[jj, {t, a, b}] // FullSimplify
Out[2]= {2 t, -2 (1 - t), 2}
Out[3]= 8 - 8 t + 8 t^2
Out[4]= Sqrt[8 - 8 t + 8 t^2]
Out[5]= {Assumptions :> $Assumptions, GenerateConditions -> False,
PrincipalValue -> False}
Out[6]= (1/(2 Sqrt[2]))(2 (1 - 2 a) Sqrt[1 + (-1 + a) a] +
2 (-1 + 2 b) Sqrt[1 + (-1 + b) b] - 3 ArcSinh[(-1 + 2 a)/Sqrt[3]] +
3 ArcSinh[(-1 + 2 b)/Sqrt[3]])
But for sure there is a lot of cases where the (symbolic) integration is simpliy not feasible. In this case you should use numeric integration. for example
In[8]:= narc = NIntegrate[jj, {t, 1, 2.5}]
Out[8]= 6.54418