The simplest example I know of is actually for a pathological case. Namely, it is presented in Chapter 2 of the book of Hazay and Lindell as an example of a two-party MPC protocol which is secure against a malicious adversary but not against a semi-honest one (in the classical sense, for this reason they prefer the notion of augmented semi-honest adversaries). The protocol is as follows:
Inputs: the two parties $P_1$ and $P_2$ have two bits $x_1$ and $x_2$ respectively.
Outputs: $P_2$ obtains $x_1\wedge x_2$ (the logical AND of $x_1$ and $x_2$), $P_1$ obtains nothing.
- $P_1$ sends $x_1$ to $P_2$.
- $P_2$ outputs $x_1 \wedge x_2$.
This protocol is not secure against a semi-honest $P_2$ because the view of $P_2$ contains the message $x_1$, which cannot always be computed from the input of $P_2$ (which is $x_2$) and its output (which is $x_1\wedge x_2$). Namely, in the case where $x_1$ is random (uniform) and $x_2 = 0$, then $x_1 \wedge x_2$ will always be $0$, and the simulator has to guess the value of $x_1$, in which it succeeds with probability at most $1/2$.
This protocol is secure against a malicious $P_2$, however.
- In the real world, a malicious adversary corrupting $P_2$ first obtains the input $x_1$ of $P_1$, and then outputs whatever it wants from $x_1$ and $x_2$.
- In the ideal world, the honest $P_1$ sends $x_1$ to the ideal functionality. A malicious adversary corrupting $P_2$ sends $1$. Then the adversary obtains $1\wedge x_1 = x_1$, and outputs whatever the real-world adversary outputs.
The fact that it is secure against a malicious $P_1$ is trivial: the ideal-world adversary just sends to the ideal functionality whatever the real-world adversary sends to $P_2$.
To clarify something, the fact that the above protocol is called "secure" may be counter-intuitive, because $P_2$ obtains the output of $P_1$, which seems to contradict the whole point of MPC. However, the definition of secure computation (against a malicious adversary) does not say that the (real-world) adversary must not obtain anything. It says that the real-world adversary must not obtain anything which the ideal-world adversary cannot obtain. And indeed, here we show that the ideal-world adversary corrupting $P_2$ can also obtain the input of $P_1$, hence the fact that the real-world adversary obtains it does not contradict the security of the protocol.