Problemet er, at den anden del af dit understrengsargument inkluderer det første indeks. Du skal trække det første indeks fra dit andet indeks for at få dette til at fungere.
SELECT SUBSTRING(@Text, CHARINDEX('the dog', @Text)
, CHARINDEX('immediately',@text) - CHARINDEX('the dog', @Text) + Len('immediately'))