Union-Find is for when you need dynamic connectivity. Elements arrive over time, and you query whether two elements are connected. In such a case, DFS would require rebuilding the graph each time and is inefficient.
DFS is for when you need to traverse or process components in a fixed graph. DFS is helpful for finding all nodes in a component, computing component properties, or checking specific paths.