One reason is probably that when you use opensource software and keep tracking all the updates, you end up with more and more bloated software that does not fit into a space-limited router anymore.
It works fine on the PC platform where space and other resource usage (CPU) has grown with the code, but on embedded hardware it is a bit more difficult.
Remember the current routers mostly have only 16MB of flash space!
(the previous generation usually had 128MB which was a bit more generous, but to store generic opensouce software for all functions you would need more like 512MB-1GB in my experience)
I don't see all this bloat. Well, not at where we talking: low level, kernel, drivers and servers. Take a look at the RaspberryPi: Full OpenSource, ARM, Linux kernel. This is fdisk usage from one I have access to (default install, with graphic desktop and full updated).
df -h
Sist. Arq. Tam. Usado Disp. Uso% Montado em
/dev/root 15G 4,6G 9,4G 33% /
devtmpfs 370M 0 370M 0% /dev
tmpfs 375M 0 375M 0% /dev/shm
tmpfs 375M 9,9M 365M 3% /run
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 375M 0 375M 0% /sys/fs/cgroup
/dev/mmcblk0p1 41M 22M 20M 53% /boot
tmpfs 75M 0 75M 0% /run/user/1002
tmpfs 75M 0 75M 0% /run/user/1001
I am using 4,6GiB of disk space. Not that bad.
True, it doesn't have OpenVPN and everything else installed - but it would not use more than 1 GiB. Even if it used 3 more GiB: It would be still using less than ROS.
So, no. To me is more about control. If they build it, they can guarantee the software through the expected life cycle of the product.
If it is a good idea, if this costs less resources than going full OpenSource, if the competitive advantage is worth the trouble (even if there is one or not) is another problem - and a strategical decision to Mikrotik.