One obvious reason a
.desktop has not necessarily the executable bit set is these files were not intended to be executable in the first place. A
.desktop file contains metadata the tell the desktop environment how to associate programs to file types but was never designed to be executed itself.
However, as a
.desktop file indirectly tell the graphic environment what to execute, it has an indirect capacity to launch whatever program is defined in it, opening the door to exploits. To avoid malicious
.desktop files to be responsible to the launch of hostile or unwanted programs, KDE and gnome developers introduced a custom hack that somewhat deviates the intended Unix file execution permission purpose to add a security layer. With this new layer, only
.desktop files with the executable bit set are taken into account by the desktop environment.
Just turning a non executable file like a
.desktop one to an executable one would be a questionable practice because it introduces a risk. Non binary executable files with no shebang are executed by a shell (be it
sh or whatever). Asking the shell to execute a file which is not a shell script has unpredictable results.
To avoid that issue, a shebang needs to be present in the
.desktop files and should point to the right command designed to handle them, xdg-open, like for example Thunderbird does here:
Comment=Send and Receive Email
In this case, executing the
.desktop file will do whatever
xdg-open (and your Desktop Environment) believe is the right thing to do, possibly just opening the file with a browser or a text editor which might not be what you expect.