There is a way to do it, it is really similar to a moving average
$N$ : number of samples per period
$Z$ : Accumulator
$x[n]$ : current sample
$$Z[n] = Z[n-1]+ x[n]^2 - x[n-N]^2 $$
$$x_{RMS}[n] = \sqrt{\frac{1}{N}Z[n]}$$
Basically, you need a delay line to store the previous $x[n]$ samples or better yet the previous $x[n]^2$ samples and you need an accumulator. Both the accumulator and delay line should be set to 0 prior to starting the moving-RMS.
Basically you need need 1 multiplication, 2 additions, 1 division (by a constant, so it is equivalent to multiply by another constant) and 1 square root operation per sample.
Edit : The number of samples per period should be an integer. There are ways to do it with a non-integer number of samples per period, but it takes more work.
Edit 2 : This scheme will work only if the accumulator is an integer and if the accumulator never wraps around as Robert Bristow-Johnson pointed out. If the accumulator is floating-point, you might be stuck with some value in the accumulator you cannot get rid of, because floating-point arithmetic is not guaranteed to be associative in all conditions. See R-B-J solution in the comments when using floating-point arithmetic.