Problém je v tom, že druhá část vašeho podřetězcového argumentu obsahuje první index. Aby to fungovalo, musíte odečíst první index od druhého indexu.
SELECT SUBSTRING(@Text, CHARINDEX('the dog', @Text)
, CHARINDEX('immediately',@text) - CHARINDEX('the dog', @Text) + Len('immediately'))