If all edges have equal weight (e.g., weight 1), BFS finds shortest paths. If weights are only 0 or 1, you can use 0–1 BFS with a deque; otherwise you need Dijkstra.
Dijkstra is the general shortest-path algorithm for non-negative weights (different costs), usually with a priority queue.
BFS is the special case where every edge cost is identical (typically 1). In that world, “shortest path” means “fewest edges”, and BFS explores nodes in increasing hop count.