With react-admin, you have no choice other than using Material UI for your app. refine's provides nearly all the features of react-admin enterprise provides as open-source.
Since refine's architecture is headless, router logic is completely detached from the business logic and UI layer. So you can use refine with React Router, NextJS, Remix, or any other framework may pop-up as long as it's React based. With react-admin, you can only use react-router and it doesn't have a real SSR support, while with refine, you can use SSR frameworks like NextJS and Remix without being limited.
Short story: Refine and react-admin were in the same low-code space (targeting developers) until today, but it seems they've pivoted to no-code (targeting non developers) as they go after ReTool.
Long story: https://marmelab.com/blog/2023/07/04/react-admin-vs-refine.h...