Short answer: yes, it does - to some minor, acceptable degree.
Why is this tolerable? Look at the methods which are replicated in a composition scenario - these methods are only delegating calls to the interface of the component, so containing no real logic.
The heart of the DRY principle is to avoid having two places in code where the same logical rules are encoded - because when these logical rules change, in non-DRY code it is easy to adapt one of those place and forget about the other one, which introduces an error.
But since delegating calls don't contain logic, these are normally not subject of such a change, so not causing a real problem when "prefering composition over inheritance". And even if the interface of the component changes, which might induce changes at all classes using the component, in a compiled language the compiler will tell us when we forget to change one of the callers.
A note to your example: I don't know how your HomePage and your EditInfoPage look like, but if they have login functionality, and a HomePage (or an EditInfoPage) is a LoginPage, then inheritance might be the correct tool here. A less debatable example, where composition will be the better tool in a more obvious manner, would probably make things clearer.