Masalahnya adalah bahwa bagian kedua dari argumen substring Anda menyertakan indeks pertama. Anda perlu mengurangi indeks pertama dari indeks kedua Anda agar ini berfungsi.
SELECT SUBSTRING(@Text, CHARINDEX('the dog', @Text)
, CHARINDEX('immediately',@text) - CHARINDEX('the dog', @Text) + Len('immediately'))