Which is faster - joins or subqueries in SQL (In RDMS)?

Speaking from SQLServer perspective, it really depends on the scenario. By analysing execution plan for both the approaches, you will get a clear idea on which method works best for your scenario.

As long as you’ve the required index present on the predicate columns, optimiser would be able to use them in both the occasions. So based on what you’re doing inside the subquery the performance would vary.

If dataset is too big in size, then it is preferable to write subquery and extract useful data then do joins and all on top of selected data.