Проблемът е, че втората част на вашия аргумент под низ включва първия индекс. Трябва да извадите първия индекс от втория си индекс, за да работи това.
SELECT SUBSTRING(@Text, CHARINDEX('the dog', @Text)
, CHARINDEX('immediately',@text) - CHARINDEX('the dog', @Text) + Len('immediately'))