Uniform noise signal
Your signal is a superposition of fairly widely spaced impulses. Each impulse by itself has a flat magnitude spectrum and the intervals between impulses are only pseudo periodic so the phase response superpositions are effectively incoherent. The problem isn't your FFT, it is your signal model. 

An actual ECG is much smoother. If you expect to see a predominant frequency at around 1Hz, the signal would look like a sine wave of around 1 Hz, not a sequence of isolated spikes.  

You probably really want to measure the time intervals between spikes directly in the the time domain.