For scalar input and output the two look the same, but once you leave that, they are quite different (because matrix multiplication is not commutative):

jvp multiplies the Jacobian of the forward to the left of a vector. This allows to compute the gradient of a scalar function (the direction of steepest descent) with backprop,
vjp multiplies the Jacobian of the forward to the right of a vector. This allows to compute the directional derivative of a function (but you have to give the direction at the start).

Best regards
Thomas