This is an interesting POV I hadn't considered before, thanks for sharing. I will share my own view on the matter.
I can see two main reasons for business not distributing source code:
The first is to prevent users from using it without paying. If someone acquires a copy of the source code, they can redistribute at will at no cost.
For some business models this might be fine, internet services being an example. "Normal" users would prefer paying for just using such services, instead of maintaining the necessary infrastructure themselves.
But what about desktop applications or other software that just runs in the user's device? If all the user needs to use the software is a download link, there would be no tangible incentives to pay for it. There are other incentives, such as helping maintain a software that is useful to you, but most users don't grasp the concept of software maintenance and wouldn't see that as a good investment.
The second reason is to prevent low barrier competition. As you said yourself, creation and distribution of software costs money, so consider this:
Software company "A" spends months developing a desktop application which it plans to sell for $30, which will be enough to get initial investment back after selling 1000 copies. Since the product is a desktop application, and the company is using a free software licence, they distribute the source code with the compiled version. In this scenario, what's to prevent software company "B" from taking the source, rebranding/recompiling and launching a competing version with the same features for $10? In a purely ethical world, everyone would do the "right thing" and this scenario wouldn't exist. In our world, incentive-based systems are used to keep chaos from taking over.
Currently I'm an intermediate Linux user and can get by with only free software, but that was not always the case. My first contact with computers happened before I was 10 when my father had brought a 386 and installed MS-DOS and later windows 3.1.
In the early 2000's I began my software development career using Microsoft technologies such as .NET and VBA. Sure Linux existed at the time, but it was much less accessible than it is today (especially to someone who mostly used MS products so far). Eventually I released myself from "Microsoft prison", but I had to use MS products in order to access the internet and acquire the necessary knowledge.
Today I wonder if the free internet would have developed so quickly if it was not proprietary software developed by "unethical" software companies and sold to end users. Free software is more ethical, but initially it was only for the technical elite at universities.
PS: I'm a big fan of your software (been using sr.ht since the start). Keep up the good work!