The first difference is that the Dijkstrass algorithm solves a different problem than Kruskal and Prim. Dijkstra solves the shortest path problem (from the specified node), while Kruskal and Prim find the minimum cost. The following is a modified form of the description that I wrote on this page: Graphic Algorithms.
For any graph, a spanning tree is a set of edges sufficient to provide exactly one path between each pair of vertices. This limitation means that there can be no chains formed by selected edges.
A minimum cost tree is one that has the smallest total weight possible (where weight is cost or distance). There may be more than one such tree, but Prim and Kruskal are guaranteed to find one of them.
For the indicated vertex (for example, X), the shortest path tree is a spanning tree, so the path from X to any other vertex is as short as possible (i.e., has the minimum possible weight).
Prim and Dijkstra "grow" a tree from the starting peak. In other words, they have a "local" focus; at each step, we consider only those faces that are adjacent to the previously selected vertices, choosing the cheapest option that satisfies our needs. Meanwhile, Kruskal is a "global" algorithm, which means that each edge (greedily) is selected from the entire graph. (In fact, Dijkstra can be seen as having some global aspect, as indicated below.)
To find a tree with the lowest cost:
Kruskal (global approach): at every step, select the cheapest available edge anywhere that does not violate the goal of creating a spanning tree. Prim (local approach): select the starting vertex. In each subsequent step, select the cheapest available edge attached to any previously selected vertex that does not violate the goal of creating a spanning tree. To find the shortest spanning tree:
Dijkstra: At each step, select the edge attached to any previously selected vertex (local aspect), which makes as little as possible the total distance from the initial vertex (global aspect) and does not violate the goal of creating a spanning tree.
Low cost trees and shortest path trees are easily confused, as are the Prim and Dijkstra algorithms that solve them. Both algorithms "grow" from the initial vertex, at each step, select an edge that connects the vertex Y, which is in the tree, to the vertex Z, which is not there. However, while Prim chooses the cheapest such edge, Dijkstra chooses an edge that leads to the shortest path from X to Z.
A simple illustration helps to understand the difference between these algorithms and the trees that they produce. In the graph below, starting at vertex A, both Prim and Dijkstra begin by selecting the edge AB, and then adding the edge BD. Two algorithms diverge here: Prim completes the tree by adding a DC edge, and Dijkstra adds AC or BC, because the AC and ABC paths (both with a total distance of 30) are shorter than the ABDC path (a total distance of 31).