You mean like a builtin? This implies two level of trashing, which seems to be too much. E.g. I don't use any DE on GNU/Linux and have no means to manipulate .trash, it will just grow in size, same is true for any headless configurations.
Of course you could just map DD to something:
if system('uname') == 'Linux'
nnoremap DD :!trash-put %f
else
nnoremap DD :!Trash %f
endif
Though 'trashprg' option could make sense, I remember user mentioning using shred to delete files securely. With empty value by default, it could remove files normally and otherwise invoke the command appending list of files to allow using Trash, trash-put, shred or something else.