Difficulty is a power of 2.
Difficulty indirectly represents the number of zeroes a the binary representation of a block hash must begin with to be considered a valid share.
The formula is :
Number of zeros necessary = 32 + log2(difficulty).
So a diff1 share begins with: 0000 0000 0000 0000 0000 0000 0000 0000 XXXX XXXX....
A diff2 share adds one 0: 0000 0000 0000 0000 0000 0000 0000 0000 0XXX XXXX....
Since it cuts in half the number of valid shares, the "difficulty" of finding a valid share is doubled.
A diff4 share adds another 0: 0000 0000 0000 0000 0000 0000 0000 0000 00XX XXXX....
The number of valid share is again cut in half, so the amount of work necessary to finding a valid share, relative to a diff1 share, is 4 times.
You can see, then, how and why the difficulty is constrained to powers of two. Furthermore, putting a non-power of two in the above formula would result in a non-integer amount of zeros necessary, which is impossible.
Indeed, the full Bitcoin network has difficulty of any arbitrary value, but I've never seen a pool (any pool! not just this one) that sent share of values not multiple of two.