'movmean' is a built-in function.
So movmean is a compiled function. It uses a loop, scanning through the data, maintaining a window of the desired size. Because the loop is compiled code, carefully written in a lower level language, it will be pretty efficient, more so than a loop in parsed MATLAB code, even with a good parsing capability as is built into MATLAB.
Anyway, as you wrote it, that is not even close to how I would try to write it even in MATLAB. you are using find on EVERY iteration. UGH. A bad idea. Instead, by keeping track of the points which will be in the window, even if the points are irregular, as long as they are sorted, you will do better than a repeated call to find. This is certainly how I would write the code in a lower level language.