Оттого, что ширина текста определяется для шрифта и размера указанного в Canvas, а не для шрифта из компонента.
Например, в TLabel.TextSettings.Font и в его TLabel.Canvas.Font размер шрифта будет разный (в Canvas он дефолтный - 12).
В FMX компонентах Canvas, кстати, общий и один и тот же - это Canvas формы.
Если в OnResize чего-либо, сделать так:
Label.Canvas.Font.Size := Label.Font.Size;
или
Label.Canvas.Font.Assign(Label.Font); (чуть дольше)
lRealWidth := Label.Canvas.TextWidth(Label.Text);
То размер будет корректный.