Semplicemente perchè hai scelto il modo più complicato per far visualizzare la ContextMenuStrip. La procedura utilizzata e la solita: popolare la ContextMenuStrip e impostare la proprietà .ContextMenuStrip della DataGridView con la ContextMenuStrip aggiunta al progetto.

Se utilizzi il metodo .Show, come hai fatto, dovrai anche dirgli dove visualizzarla e sicuramente non con:
codice:
e.Location
visto che il DataGridViewCellEventArgs non espone la proprietà location. Dovrai utilizzare le coordinate del mouse sulla Datagrid o utilizzando il MousePosition oppure:

codice:
 Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
        ContextMenuStrip1.Show(DataGridView1, x, y)
    End Sub

    Dim x As Integer
    Dim y As Integer
    Private Sub DataGridView1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridView1.MouseMove
        x = e.Location.X
        y = e.Location.Y
    End Sub
Ma la soluzione più semplice ed elegante mi sembra la prima.