Generally there are 3 criteria that might cause the migrate option to be grayed out.
1. There is an old snapshot or a 3rd party backup is running that has created a snapshot of the VM. You will need to delete the snapshot to be able to migrate.
2. There is an attached device such as a CD Rom/ISO file or special port that needs to be removed in the settings of the VM.
3. There is a DRS rule that requires the VM to be on that host. Check DRS rules on the Configuration tab and if necessary, remove the VM from the DRS rule or group.
I had a scenario where none of these applied. I had to power the VM off, remove from inventory, then add to inventory on the host where I wanted it to reside.
Hope this helps someone.