That is possible with the PostEvent method.
The difficulty is that you need to know how to compose the specific event you want to create.
The following script will generate a VmFailedToPowerOnEvent, where I only populated the required properties.
As you can see, not as simple as generating a user event, but possible
$vmName="MyVM"
$userName="testuser"
$evtMgr=Get-ViewEVentManager
$event=New-ObjectVMware.Vim.VmFailedToPowerOnEvent
$event.chainId=1
$event.CreatedTime=Get-Date
$event.Key=1
$event.Username=$userName
$event.Template=$false
$event.Reason=New-ObjectVMware.Vim.LocalizedMethodFault
$event.Reason.fault=New-ObjectVMware.Vim.InvalidPowerState
$event.Reason.fault.existingState="poweredOn"
$event.Reason.fault.requestedState="poweredOff"
$event.Reason.LocalizedMessage="Testing event"
$event.VM=New-ObjectVMware.Vim.VmEventArgument
$event.Vm.Name=$vmName
$event.VM.vm= (Get-VM-Name$vmName).ExtensionData.MoRef
$evtMgr.PostEvent($event,$null)