I've been trying to find the answer to this question online but I have not been able to find good enough to make me feel sure about the answer.
I believe they are essentially the same but user acceptance test (UAT) requires a real user while end-to-end (E2E) test uses automated tools to simulate the users?
User Acceptance Test is a phase in a typical software development process.
From the other side, End-To-End test is one of the approaches to testing the complex applications which involves all layers of the application to interact with each other during test execution.
It means that you can execute End-to-End test in User Acceptance Test phase, and you can't consider those two terms as one, that has the same meaning.