ナイキスト周波数(サンプリング周波数の1/2)を超える周波数のデータで平均を算出しているためと考えられます。
% Sample Data
nSamp = 1000;
Fs = 1000;
SNR = 40;
rng default
t = (0:nSamp-1)'/Fs;
x = chirp(t,50,nSamp/Fs,100);
x = x+randn(size(x))*std(x)/db2mag(SNR);
data = x';
%質問のコードで計算
firstRowData = data(1, :);
fs = 1000;
fftData = fft(firstRowData);
powerSpectrum = abs(fftData).^2;
N = length(firstRowData);
frequencies = (0:(N-1)) * fs / N;
meanFrequency = sum(frequencies .* powerSpectrum) / sum(powerSpectrum);
fprintf('1行目のデータの平均周波数: %.2f Hz\n', meanFrequency);
%ナイキスト周波数以下のデータを使用
powerSpectrum2 = powerSpectrum([1:N/2+1]);
frequencies2 = frequencies([1:N/2+1]);
meanFrequency2 = sum(frequencies2 .* powerSpectrum2) / sum(powerSpectrum2);
fprintf('1行目のデータの平均周波数: %.2f Hz\n', meanFrequency2);
%meanfreq関数で算出
meanfreq(data,fs)