Generally, the programs I'm asked to write use a handful of known SQL statements called several times with varying bound parameters. In those situations, prepare/execute has definite speed advantages.
If you're only going to use a statement once during the life of the program (or connection), those advantages fade away. In that case there can be advantage, or at least convenience, in an all-in-one statement.
So without knowing your particular use case, I'm sorry to say I can't make your decision for you.
I use DBD::Oracle for most of my work, so I prefer prepare/execute ;-)