They let you at least partially separate instructions from data. This is useful for things like "Translate this text to French" - you don't want any instructions in the text you are translating to interfere with that goal.
If this was 100% robust then it would also solve prompt injection, but sadly it isn't.
I never have found a need for them. i.e. the example in the article Just prompting like:
Write hello 3 different ways in spanish works fine for me