All my theory tells me this should oscillate and I should have a triangular wave at \$V_a\$ and a square one at \$V_b\$ But those nodes all come out completely zero.
This circuit has a stable operating point for an output of zero volts. This often happens with oscillators. A common technique is to either inject a current pulse in some node using a piecewise linear current source or force an initial condition that is different from zero.
For example add
.IC V(Vb) = 1
Your simulator is finding a stable but unrealistic point. You need to give it a kick to get things started. You could put and initial condition on the capacitor or set one nodes to something other than 0. You don't say what opamp you are using. Brian is correct that you will need a very fast opamp to make this work. Your time step may be a problem too. Your oscillator will have a period of about 0.2us so your step should be less than this.
I think, the problem of your relaxation generator neither is a missing "kick" not any other starting aid. It is simply the limited slew rate of the opamp that does not allow operation as desired. The integrator time constant is app. 180nsec only. Just to test the circuit - try to increase the capacitor by a factor of 1000 and see if it works.
Such a relaxation generator does not need any starting aid at all (assuming real opamp models and finite power supplies) because the integrator will start ramping at t=0.
More than that, these oscillators will not work for ideal opamps (VCVS) because the opamp with pos. feedback must be able to "jump" to a finite voltage. Hence, a real model with fixed supply limits is required.