There isn't a playwright in Britain today with the conscience to match Anders Lustgarten. Play after play, he draws our attention to injustices around the world: to massacres in Turkey and atrocities in Zimbabwe. Lampedusa looks to a more passive, but no less effective, mass killing: the thousands of migrants drowning in the Mediterranean. The search and rescue operation was reduced last year, partly as a deterrent.

Stefano (Ferdy Roberts) is an ex-fisherman, now working for the Italian coastguard and mostly scooping corpses out of the sea: "the job no-one else will take". Having fallen victim to Europe's financial crisis, he can't fathom why anyone would want to come to the continent, let alone risk their life doing so. His own brother, a biochemistry grad, left for London to work as a chef.

Denise is a second-gen Chinese immigrant, living in Leeds and working for a payday loans company - another job most turn their noses up at. For Denise, it pays student fees, fueling hopes of a better future elsewhere, but it will, eventually, go to supporting her disabled mother, whose benefits are under threat.

Lustgarten lets us draw the parallels. Both are forced to carry out the day-to-day realities - cruelties, really - of callous policies handed down from on high. Both believe that people made their choices and get their just deserts, but individual acts of kindness trigger revisions of opinion: Stefano is helped by a Malian mechanic; Denise, taken in by a Portuguese single mum.

'Real people don't talk like this. Hell, even fictional characters don't talk like this.'

There's no denying that Lampedusa makes its points effectively: not just humanity stretches beyond boundaries, as kindness should, but also that mass complicity is made up of a million individual choices. It also unleashes the sort of information the media lets slip: that migrants aren't identikit Africans, that there's a hoop-jumping process to claim benefits.

The thing is: conscience doesn't make a playwright and Lustgarten's writing is just awful: stewed, florid, way OTT. Stefano drops bon mots like "the Med is dead", and, in a metaphor so strained it needs six months on the sidelines, likens reunited lovers to "two torpedoes rocketing together... in an explosion of sheer joy and relief and the ecstasy of deepest pain averted". (You know, as torpedoes do.) Denise speaks of "a flood of shame". Every noun gets an adjective; every sight sprouts a simile.

Real people don't talk like this. Hell, even fictional characters don't talk like this. You can't believe in either Stefano or Denise for a second, which is strange given both undoubtedly exist. The excess pays off once: with vivid descriptions of bloated bodies being pulled from the sea; their flesh disintegrating in Stefano's hands; their eyelids eaten away by fish. The rest is too much by half and borderline unactable as a result. Ferdy Roberts comes across like an old sea dog; his voice a salty growl. Louise Mai Newberry is 90% Northern schtick: "me mam", "me dog", "me python".

Lampedusa exists to testify and it does that. Steven Atkinson's pared-back production, which heads to HighTide and Liverpool later in the year, is stark and accusatory. Sat around Lucy Osborne's wooden stage, all equal in the round, we're eyeballed, sternly, by the characters and, later, illuminated by torches. It's deeply uncomfortable, but mostly because one resents being hectored by so shoddy a piece of writing. Lampedusa's not good drama: it's journalism that's invented its sources.

Lampedusa runs at the Soho Theatre until 26 April 2015