Docopt does not parse an argument string into an argument vector. Try the following.
"""
Parser
Usage: parser.py <trey_file> <als_cmd>
"""
print docopt(__doc__)
print docopt(__doc__, 'myfile.py "This is an Orange"')
print docopt(__doc__, ['myfile.py', 'This is an Orange'])
Run the script from your shell using python parser.py myfile.py "This is an Orange".
The first case should work as expected because the shell splits the arguments into sys.argv as you expect. The second case fails with your problem because docopt expects its input already tokenized. The third case will work as expected.
As an aside, it seems that try.docopt.org makes the same mistake of passing a string instead of a vector to docopt().
{'<als_cmd>': 'This is an Orange', '<trey_file>': 'myfile.py'}.