execute was initially filtered out because XCM has not been audited, and we wanted some guarantees on security. Nowadays, it’s probably fine to enable now, since all XCM executions get prepended with a DescendOrigin, which lowers the privilege level to that of the account that called the execute extrinsic.
Another closely related extrinsic is send, and this one is definitely more unsafe to allow for anyone to call. Recall that XCM is meant to be written by developers – it is very easy for non-developers to write an incorrect XCM program which results in a loss of funds, especially in a cross-chain environment. Thus, send should at the very least be filtered not to be allowed by everyone to call.