Both Kosaraju and Tarjan run in time and use extra space. Kosaraju is easier to understand and implement: two simple DFS passes, one on the original graph and one on the transpose graph. The logic is direct. Tarjan is more complex but uses only one DFS pass instead of two.
In practice, Tarjan has slightly better constant factors because it avoids building the transpose graph. Use Kosaraju if you need the transpose graph for other purposes. Use Tarjan if you prefer a single-pass algorithm or want cleaner code without explicit graph reversal.
Space complexity is for the data structures used.