A question on difference between an computationally created sinusoid signal and the recorded signal (when played out through a speaker)?
What you are seeing are harmonics. (Multiples of the fundamental frequency). These indicate that your system has distortion. Harmonic distortion, loosely speaking, is a change in the shape of the input due to a nonlinear behavior in the signal chain. It adds frequencies which are not present in the original signal.

Inside Matlab, your generated waveform is pure data, and so it has no distortion (except for the tiny errors in the floating-point representation). The distortion happens in your analog chain: in your audio interface output, amplifier, speaker, microphone, microphone preamp, audio interface input.

See if you can fine tune the gains of these components to reduce these harmonics. The gain structure over multiple parts in the signal path should be balanced. Loosely speaking, you don't want some part not having enough gain and cranking up another part to compensate.

Also another thing to see is whether the distortion goes away if you make the signal much smaller. Some forms of distortion stay loud as the signal is decreased (e.g. cross-over distortion in a class-AB amplifier.). Some forms of distortion diminish or go away. (e.g. clipping.)

You need, surprise surprise, quality hardware if you want to recapture a pure signal without distortion. How much did you spend on your audio interfaces, speakers, mic, etc.

A professional quality audio interface can set you back $1000 and up. Good set of studio monitor speakers, likewise. Good microphone: hundred bucks minimum.