They spam your (mine or everybody's) website because in the end it pays. Maybe because your visitors click on the URL, maybe because their own website gets a higher ranking on Google (because of many websites linking to theirs). It is not because it is your website, it is because they found a way to inject information easily (through a script or so).
Because their cost is extremely low (usually all systems they use are not owned by themselves, but compromised systems all around the world). They need only a handful of paying visitors in their own shop for maybe every 1000k+ spam messages they leave. Think about spam in global scale, not precisely your website. Yours just happens to be in their path.
For every more or less standard website (for example, based on phpBB, Joomla, Drupal, Scuttle, ...) if there are many installs on the Internet, it pays to develop a script to spam. Google will find the vulnerable sites for you. Browse through your webserver logs, and pay attention to referrers that mention Google. Study the query that got them to your website. You'll be surprised what search terms they've used to find your content.
The only reason why spam exists is because in the end it pays good money (at least for someone).