It's never a simple matter of subdomains vs directories. In fact, that particular framing misleads, because it suggests equivalence that does not exist. In my experience, the subdomain is an implementation that requires significant planning, because there are consequences that don't exist with directories.
Much of our caution concerning the use of subdomsins comes from observing Google penalties imposed because of them. Those penalties almost always impact the top level domain - in other words, implementing a subdomain improperly can take down the main site in the search. More on this after some basics.
Treat As TLD
Subdomains are treated as top level domains in many ways. This means that the same rules apply regarding interlinking with other owned entities. The ownership of the subdomain is a given - it is assumed that the owner is the same as the tld. We have issues with this assumption, but even if you sell or lease the control of the subdomain, you need to maintain some control over it because not doing so can result in very unpleasant rank surprises on your main site. The content on the subdomain does NOT contribute to the critical mass of the main site - it is a requirement that enough content be developed to enable the sub to stand on its own. So a creating a subdomain and populating with a very small content set is probably not a smart move. Only go to a subdomain if you intend to develop a significant content area that is different enough from your tld to warrant its own space. And remember that putting that same content in a diretory WILL contribute to the main site - be aware of the tradeoff you're making.
Among the primary and most common reason businesses use subdomains is to gain a semantic advantage in the search. This is because it is easy to get target semantics into the domain name - unlike top level domains, you don't have to look for an available name - most likely you can create one that perfectly matches your keyword target.
Some uses are also a result of misinformed habit. For example, blog.domain.com has ingrained itself into web culture, even though that is not the best way to implement a blog. Especially since the blog is very likely to get significantly more robot attention because of the frequency of posts. Having this occur on the tld is almost always preferable.
Subdomains should have their own navigation, independent of the tld. Using the top level domain's navigation structure on the subdomain will very likely be seen as a non-compliance by Google. Granted, there are many sites flying under the radar with exactly this implementation. Keep in mind that Google often does not have a good record regarding timely discovery of non-compliant sites - many go for years before being penalized. The point is to avoid any issue whatever. One way to understand why this is an issue is by treating all subdomains as tlds. Would you ever put the exact same nav on 2 tlds?
Changes over time
There was a time when subdomains were instantly powerful because of the semantics that could be applied at the domain level. Many sites simply threw up a few pages into multiple subdomains, each addressing a different keyword targets, often using the same tld navigation. And it used to work like a charm - could often get both the tld and subdomain urls indexed in the same search results page. But doing this now will almost certainly backfire.