The filter may be unstable, and if so, may not produce any output. Another possibility is that one or more of the elements of the data are NaN (although unlikely).
The best option is probably to use the bandpass function, specifically:
ecg = bandpass(ecg_raw, Fpass, Fs);
Although if there is no significant baselline wander, using a lowpass filter would work.
The signal appears to have a significant noise component, however it is not possible to determine what that is. The way to determine that is to calculate and plot the Fourier transform of the signal —
time = linspace(0, L, L)/Fs;
Fv = linspace(0, 1, N/2+1)*Fn;
If this is 50-60 Hz supply frequency noise, it can be eliminated with a notch filter (the bandstop function). If it is broadband noise, the only effective ways to deal with it are wavelet denoising or the Savitzky-Golay filter (the sgolayfilt function).