Ruby, 37 bytes
->s{(1...s.size).all?{|i|s[i..-1]>s}}
Testing:
lyndon_words = %w(0 1 01 001 011 0001 0011 0111 00001 00011 00101 00111
01011 01111 000001 000011 000101 000111 001011 001101
001111 010111 011111)
not_lyndon_words = %w(00 10 11 000 010 100 101 110 111 0000 0010 0100 0101
0110 1000 1001 1010 1011 1100 1101 1110 1111)
f=->s{(1...s.size).all?{|i|s[i..-1]>s}}
p lyndon_words.all? &f # => true
p not_lyndon_words.any? &f # => false
lyndon_words = %w(0 1 01 001 011 0001 0011 0111 00001 00011 00101 00111
01011 01111 000001 000011 000101 000111 001011 001101
001111 010111 011111)
not_lyndon_words = %w(00 10 11 000 010 100 101 110 111 0000 0010 0100 0101
0110 1000 1001 1010 1011 1100 1101 1110 1111)
f=->s{(1...s.size).all?{|i|s[i..-1]>s}}
p lyndon_words.all? &f # => true
p not_lyndon_words.any? &f # => false