Selenium is a little old and verbose - the biggest issue, imo, is having to handle waiting for elements. Also managing webdrivers suck. Cypress is great for E2E tests but falls apart on edge cases, for example it can't handle multiple domains. Just requiring npm and not needing webdrivers is really nice for CI. Playwright is sort of a combination of both - fixes a lot of issues in Selenium but has the ease of use of Cypress. It is much less documented than Selenium though.
If I was starting a new project I'd use Playwright.