Syntax in the Python API
Take a closer look at the syntax the command needs.

bpy.types.Object is just the general class.  In basic programming terms, bpy.types.Object is only a blueprint for what an object should be. You want the instance, or copy, of the class that refers specifically to 'Plane' .
In your case, this would be: bpy.types.Object(bpy.data.objects['Plane'])

Secondly, look again at the API for is_modified(). When it says (scene, settings) it doesn't mean those literal words.


scene refers to the actual class of your scene. You want bpy.data.scenes['Scene'] (or whatever name is shown in the outliner)
settings has two options already determined for you. In the API, it says "(enum in ['PREVIEW', 'RENDER'])," meaning either of those words is what goes in the settings place. PREVIEW checks the object's modifier settings for preview mode, and RENDER checks settings for render mode (what appears when you press SHIFT + Z)


So, to do it right:

import bpy
scene = bpy.data.scenes['Scene']
plane = bpy.data.objects['Plane']


Then:    

bpy.types.Object(plane).is_modified(scene, 'PREVIEW')  OR
bpy.types.Object(plane).is_modified(scene, 'RENDER')