Why are NaCl and NaBr not soluble, whereas NaI is soluble in acetone (in the Finkelstein reaction)?
The solubility of a salt in a solvent is for a good part determined by the difference of stability in the dissolved state (solvated ions) vs. the solid state (ions in crystal lattice). The different solubility of the sodium halides in acetone can be explained by the crystal structures.

With iodide, the solvate $\ce{NaI \cdot 3(CH3)2CO}$ can be formed, in which each $\ce{Na+}$ is coordinated by 6 acetone ligands via oxygen lone pairs, and the $\ce{I-}$ ions fill in the gaps between these octahedral units, being surrounded by the methyl groups of the acetones. $\ce{I-}$ has a larger ionic radius compared to $\ce{Cl-}$ and $\ce{Br-}$ and thus fills the gap completely, thereby minimizing empty space in the lattice and its distance to $\ce{Na+}$, which is, however, still larger than in solvent-free sodium iodide. This larger distance between the ions decreases the lattice energy, which in turn makes the compound readily soluble in acetone. 

$\ce{Cl-}$ and $\ce{Br-}$ are too small to fit in these gaps, and as the cation-anion distance becomes too large, the only way to minimize the lattice energy is the formation of a solvent-free structure $\ce{NaX}$ (X = $\ce{Cl-}$, $\ce{Br-}$). When the lattice energy is larger than the energy released by solvation of the ions, namely that of $\ce{Na+}$ by complexation with acetone, the compound becomes insoluble and precipitates from the solution (source).