Kahn's algorithm and DFS-based topological sort have the same time complexity: O(V + E).
But they have different properties. Kahn's algorithm gives you lexicographically smallest order if you use a min-heap instead of a queue. It also naturally detects cycles (if the result has fewer than V nodes, there was a cycle). DFS-based sort is simpler if you already have DFS code.
It uses recursion, which might hit stack limits on deeply nested graphs. It detects cycles through the three-color scheme (white, gray, black). Choose Kahn when you need lex-smallest order or when you prefer iterative code. Choose DFS when you have existing DFS infrastructure or when you need to detect cycles with path reconstruction.