Particulates, like soil, are actually considered a hazardous material in space because it can float into and clog up the ventilation.
Capillary action is a dominant force in microgravity and water will coat everything.
Roots are respiratory and will absorb the oxygen in the water around them, but the bubbles of CO2 they create won't naturally rise to the surface. This can cause the roots to suffocate.
Hydroponics are the logical route because regular soil will deplete its nutrient supply, but you still need a root growth substrate. The current "Veggie" system uses vermiculite clay chips contained in a pouch. They had to use the right gauge of particle diameter though: too small and it will saturate with water and suffocate the roots, too big and there won't be enough pressure gradient from the capillary action and the roots will dry out. Also, if you don't have your hydroponic nutrient solution just right, salts will build up in your substrate, so the pouches are typically single use.
Our team developed a method for 3D printing a growth substrate. This eliminates the problem with particulates and it also allows you control the gauge of the holes in the material to get the right air/water ratio. You can even vary the hole sizes so the water is pulled by the capillary action more at the dry end and fills the medium more evenly with water. It's not a perfect solution. The hydrophilic nylon filament we used liked to warp when it was printed. It also doesn't work for root vegetables like potatoes and stuff. However, it is reusable, cleanable, recyclable, scalable, largely passive, and safe. Plus, everyone loves 3D printers.
TL;DR Microgravity creates a lot of problems for growing plants in space, many of which aren't immediately obvious. 3D printed growth mediums might be a solution.