Because "ŝin" is accusative and "atendi" is a transative verb. Saying "atendi por ŝi" would mean that you are waiting for something to benefit her, e.g. waiting for her package to be delivered, rather than waiting for her to return/finish doing something. "Atendi por ŝin" would be confusing because you would be combining an accusative noun with a preposition after a transative verb.
I'm having troubles with atendi, does it mean wait or await? Is there a difference?
I am puzzled that "have to" is provided as the only option for 'devas' where I feel "must" is less clumsy.